/*
 * Gui.java
 */
package nxtgeninventorysystem.View;

import nxtgeninventorysystem.View.Dialog.AboutSys;
import nxtgeninventorysystem.View.Dialog.AboutDevs;
import java.awt.Component;
import java.awt.Dialog.ModalExclusionType;
import java.awt.Dimension;
import org.jdesktop.application.Action;
import org.jdesktop.application.ResourceMap;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.FrameView;
import org.jdesktop.application.TaskMonitor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.PrintStream;
import java.sql.Date;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Stack;
import javax.swing.AbstractAction;
import javax.swing.DefaultComboBoxModel;
import javax.swing.Timer;
import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import nxtgeninventorysystem.Controller.*;
import nxtgeninventorysystem.Data.Item;
import nxtgeninventorysystem.Data.ItemSearchOptions;
import nxtgeninventorysystem.Data.Person;
import nxtgeninventorysystem.Data.PersonSearchOptions;
import nxtgeninventorysystem.Data.Transaction;
import nxtgeninventorysystem.Data.TransactionSearchOptions;
import nxtgeninventorysystem.Driver;
import nxtgeninventorysystem.TextAreaAndFileOutputStream;
import nxtgeninventorysystem.View.Dialog.ModifyItem;
import nxtgeninventorysystem.View.Dialog.CreateItemType;
import nxtgeninventorysystem.View.Dialog.ModifyPerson;
import nxtgeninventorysystem.View.Dialog.CreateTeam;
import nxtgeninventorysystem.View.Dialog.DatabaseConfig;
import nxtgeninventorysystem.View.Dialog.EditItemType;
import nxtgeninventorysystem.View.Dialog.EditTeam;
import nxtgeninventorysystem.View.Dialog.ErrorOutput;
import nxtgeninventorysystem.View.Dialog.GuiDialog;

/**
 * The Gui class provides general access to the application's MVC View
 * components as well as navigational functionalities within the Gui.
 * This class also handles calls to event functions.
 * @author Seraph Softworks
 */
public class Gui extends FrameView {

    public Gui(SingleFrameApplication app) {
        super(app);

        prime_instance = this;

        initComponents();
        initializeScreensMap();
        initializeDialogsMap();

        this.getFrame().setMinimumSize(new Dimension(850, 650));
        this.getFrame().setPreferredSize(new Dimension(850, 650));
        this.getFrame().setMaximumSize(new Dimension(850, 650));
        this.getFrame().setSize(850, 650);
        this.getFrame().setResizable(false);
        this.getFrame().setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        // status bar initialization - message timeout, idle icon and busy animation, etc
        ResourceMap resourceMap = getResourceMap();
        int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
        messageTimer = new Timer(messageTimeout, new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                statusMessageLabel.setText("");
            }
        });
        messageTimer.setRepeats(false);
        int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
        for (int i = 0; i < busyIcons.length; i++) {
            busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
        }
        busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
                statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
            }
        });
        idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
        statusAnimationLabel.setIcon(idleIcon);
        progressBar.setVisible(false);


        // connecting action tasks to status bar via TaskMonitor
        TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
        taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {

            public void propertyChange(java.beans.PropertyChangeEvent evt) {
                String propertyName = evt.getPropertyName();
                if ("started".equals(propertyName)) {
                    if (!busyIconTimer.isRunning()) {
                        statusAnimationLabel.setIcon(busyIcons[0]);
                        busyIconIndex = 0;
                        busyIconTimer.start();
                    }
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(true);
                } else if ("done".equals(propertyName)) {
                    busyIconTimer.stop();
                    statusAnimationLabel.setIcon(idleIcon);
                    progressBar.setVisible(false);
                    progressBar.setValue(0);
                } else if ("message".equals(propertyName)) {
                    String text = (String) (evt.getNewValue());
                    statusMessageLabel.setText((text == null) ? "" : text);
                    messageTimer.restart();
                } else if ("progress".equals(propertyName)) {
                    int value = (Integer) (evt.getNewValue());
                    progressBar.setVisible(true);
                    progressBar.setIndeterminate(false);
                    progressBar.setValue(value);
                }
            }
        });

        this.getFrame().setIconImage(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/nxtgen_logo.png")).getImage());

        PrintStream printstream = new PrintStream(new TextAreaAndFileOutputStream(((ErrorOutput) (dialogsMap.get(Dialog.ErrorConsole))).getTextArea()));

        System.setOut(printstream);
        System.setErr(printstream);
        
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        mainPanel = new javax.swing.JPanel();
        screensContainer = new javax.swing.JLayeredPane();
        homePage = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        readItem = new javax.swing.JPanel();
        javax.swing.JScrollPane readItemTransactionsOnThisItem = new javax.swing.JScrollPane();
        readItemTransactionsOnThisItemTable = new javax.swing.JTable();
        readItemNameDisplayLabel = new javax.swing.JLabel();
        javax.swing.JLabel readItemIdLabel = new javax.swing.JLabel();
        javax.swing.JLabel readItemNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel readItemTypeLabel = new javax.swing.JLabel();
        javax.swing.JLabel readItemDescriptionLabel = new javax.swing.JLabel();
        javax.swing.JLabel readItemBorrowerLabel = new javax.swing.JLabel();
        readItemId = new javax.swing.JLabel();
        readItemName = new javax.swing.JLabel();
        readItemType = new javax.swing.JLabel();
        readItemDescription = new javax.swing.JLabel();
        readItemBorrower = new javax.swing.JLabel();
        readItemEditInformationButton = new javax.swing.JButton();
        javax.swing.JLabel readItemTransactionOnThisItemLabel = new javax.swing.JLabel();
        readPerson = new javax.swing.JPanel();
        javax.swing.JScrollPane readPersonTransactionsByThisPerson = new javax.swing.JScrollPane();
        readPersonTransactionsByThisPersonTable = new javax.swing.JTable();
        readPersonNameDisplayLabel = new javax.swing.JLabel();
        javax.swing.JLabel readPersonIdLabel = new javax.swing.JLabel();
        javax.swing.JLabel readPersonNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel readPersonContactNumberLabel = new javax.swing.JLabel();
        javax.swing.JLabel readTeamLabel = new javax.swing.JLabel();
        javax.swing.JLabel readPersonTransactionsByThisPersonLabel = new javax.swing.JLabel();
        readPersonId = new javax.swing.JLabel();
        readPersonName = new javax.swing.JLabel();
        readPersonContactNumber = new javax.swing.JLabel();
        readPersonTeam = new javax.swing.JLabel();
        javax.swing.JScrollPane readPersonCurrentlyBorrowedItems = new javax.swing.JScrollPane();
        readPersonCurrentlyBorrowedItemsTable = new javax.swing.JTable();
        javax.swing.JLabel readPersonCurrentlyBorrowedItemsLabel = new javax.swing.JLabel();
        javax.swing.JButton readPersonEditInformationButton = new javax.swing.JButton();
        javax.swing.JButton readPersonReturnItemsButton = new javax.swing.JButton();
        readTransaction = new javax.swing.JPanel();
        readTransactionDateDisplayLabel = new javax.swing.JLabel();
        javax.swing.JLabel readTransactionIdLabel = new javax.swing.JLabel();
        javax.swing.JLabel readTransactionTypeLabel = new javax.swing.JLabel();
        javax.swing.JLabel readTransactionPersonLabel = new javax.swing.JLabel();
        javax.swing.JLabel readTransactionPurposeLabel = new javax.swing.JLabel();
        readTransactionId = new javax.swing.JLabel();
        readTransactionType = new javax.swing.JLabel();
        readTransactionPerson = new javax.swing.JLabel();
        readTransactionPurpose = new javax.swing.JLabel();
        javax.swing.JButton readTransactionViewPersonButton = new javax.swing.JButton();
        javax.swing.JLabel readTransactionItemsLabel = new javax.swing.JLabel();
        javax.swing.JScrollPane readTransactionsItemsPane = new javax.swing.JScrollPane();
        readTransactionsItemsTable = new javax.swing.JTable();
        browseItem = new javax.swing.JPanel();
        javax.swing.JPanel itemSearchPanel = new javax.swing.JPanel();
        javax.swing.JLabel itemNoLabel = new javax.swing.JLabel();
        javax.swing.JLabel itemNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel itemTypeLabel = new javax.swing.JLabel();
        javax.swing.JLabel itemDescLabel = new javax.swing.JLabel();
        javax.swing.JLabel itemAvailabilityLabel = new javax.swing.JLabel();
        itemNoValue = new javax.swing.JSpinner();
        itemNameValue = new javax.swing.JTextField();
        itemTypeValue = new javax.swing.JComboBox();
        itemDescValue = new javax.swing.JTextField();
        itemAvailabilityValue = new javax.swing.JCheckBox();
        javax.swing.JLabel itemValueNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel itemValueLabel = new javax.swing.JLabel();
        itemNoInclude = new javax.swing.JCheckBox();
        itemNameInclude = new javax.swing.JCheckBox();
        itemTypeInclude = new javax.swing.JCheckBox();
        itemDescInclude = new javax.swing.JCheckBox();
        itemAvailabilityInclude = new javax.swing.JCheckBox();
        javax.swing.JLabel itemIncludeLabel = new javax.swing.JLabel();
        javax.swing.JScrollPane itemBrowseScrollPane = new javax.swing.JScrollPane();
        itemBrowseTable = new javax.swing.JTable();
        javax.swing.JButton itemSearchItem = new javax.swing.JButton();
        javax.swing.JButton itemBorrowItem = new javax.swing.JButton();
        javax.swing.JButton itemCreateItem = new javax.swing.JButton();
        javax.swing.JButton itemDeleteItem = new javax.swing.JButton();
        browsePerson = new javax.swing.JPanel();
        javax.swing.JPanel personSearchPanel = new javax.swing.JPanel();
        javax.swing.JLabel personNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel personTeamLabel = new javax.swing.JLabel();
        javax.swing.JLabel personContactNoLabel = new javax.swing.JLabel();
        personNameValue = new javax.swing.JTextField();
        personTeamValue = new javax.swing.JComboBox();
        personContactNoValue = new javax.swing.JTextField();
        javax.swing.JLabel personValueNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel personValueLabel = new javax.swing.JLabel();
        personNameInclude = new javax.swing.JCheckBox();
        personTeamInclude = new javax.swing.JCheckBox();
        personContactNoInclude = new javax.swing.JCheckBox();
        javax.swing.JLabel personIncludeLabel = new javax.swing.JLabel();
        javax.swing.JScrollPane personBrowseScrollPane = new javax.swing.JScrollPane();
        personBrowseTable = new javax.swing.JTable();
        javax.swing.JButton personCreatePerson = new javax.swing.JButton();
        javax.swing.JButton personSearchPerson = new javax.swing.JButton();
        browseTransaction = new javax.swing.JPanel();
        javax.swing.JPanel transactionSearchPane = new javax.swing.JPanel();
        javax.swing.JLabel transactionNumberLabel = new javax.swing.JLabel();
        javax.swing.JLabel transactionDateLabel = new javax.swing.JLabel();
        javax.swing.JLabel transactionTypeLabel = new javax.swing.JLabel();
        javax.swing.JLabel transactionPurposeLabel = new javax.swing.JLabel();
        transactionNumberValue = new javax.swing.JSpinner();
        transactionTypeValue = new javax.swing.JComboBox();
        transactionPurposeValue = new javax.swing.JTextField();
        javax.swing.JLabel transactionValueNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel transactionValueLabel = new javax.swing.JLabel();
        transactionNumberInclude = new javax.swing.JCheckBox();
        transactionDateInclude = new javax.swing.JCheckBox();
        transactionTypeInclude = new javax.swing.JCheckBox();
        transactionPurposeInclude = new javax.swing.JCheckBox();
        javax.swing.JLabel transactionIncludeLabel = new javax.swing.JLabel();
        transactionDateMonthValue = new javax.swing.JComboBox();
        transactionDateDayValue = new javax.swing.JComboBox();
        transactionDateYearValue = new javax.swing.JComboBox();
        javax.swing.JScrollPane transactionScrollPane = new javax.swing.JScrollPane();
        transactionTable = new javax.swing.JTable();
        javax.swing.JScrollPane transactionItemPersonSearchPane = new javax.swing.JScrollPane();
        javax.swing.JPanel transactionItemPersonTransactionSearch = new javax.swing.JPanel();
        javax.swing.JLabel transactionItemNumberLabel = new javax.swing.JLabel();
        javax.swing.JLabel transactionItemNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel transactionItemTypeLabel = new javax.swing.JLabel();
        javax.swing.JLabel transactionItemDescriptionLabel = new javax.swing.JLabel();
        javax.swing.JLabel transactionItemAvailabilityLabel = new javax.swing.JLabel();
        transactionItemNumberValue = new javax.swing.JSpinner();
        transactionItemNameValue = new javax.swing.JTextField();
        transactionItemTypeValue = new javax.swing.JComboBox();
        transactionItemDescriptionValue = new javax.swing.JTextField();
        transactionItemAvailabilityValue = new javax.swing.JCheckBox();
        javax.swing.JLabel transactionItemValueNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel transactionItemValueLabel = new javax.swing.JLabel();
        transactionItemNumberInclude = new javax.swing.JCheckBox();
        transactionItemNameInclude = new javax.swing.JCheckBox();
        transactionItemTypeInclude = new javax.swing.JCheckBox();
        transactionItemDescriptionInclude = new javax.swing.JCheckBox();
        transactionItemAvailabilityInclude = new javax.swing.JCheckBox();
        javax.swing.JLabel transactionItemIncludeLabel = new javax.swing.JLabel();
        javax.swing.JLabel transactionPersonContactNumberLabel = new javax.swing.JLabel();
        transactionPersonContactNumberValue = new javax.swing.JTextField();
        transactionPersonNameValue = new javax.swing.JTextField();
        transactionPersonTeamValue = new javax.swing.JComboBox();
        transactionPersonNameInclude = new javax.swing.JCheckBox();
        transactionPersonTeamInclude = new javax.swing.JCheckBox();
        javax.swing.JLabel transactionPersonNameLabel = new javax.swing.JLabel();
        transactionPersonContactNumberInclude = new javax.swing.JCheckBox();
        javax.swing.JLabel transactionPersonTeamLabel = new javax.swing.JLabel();
        javax.swing.JButton transactionSearchTransaction = new javax.swing.JButton();
        borrowItem = new javax.swing.JPanel();
        javax.swing.JScrollPane borrowItemItemsPane = new javax.swing.JScrollPane();
        borrowItemItemsValue = new javax.swing.JTable();
        javax.swing.JScrollPane borrowItemPersonPane = new javax.swing.JScrollPane();
        borrowItemPersonValue = new javax.swing.JTable();
        javax.swing.JScrollPane borrowItemPurposePane = new javax.swing.JScrollPane();
        borrowItemPurposeValue = new javax.swing.JTextArea();
        javax.swing.JPanel borrowItemPersonSearch = new javax.swing.JPanel();
        javax.swing.JLabel borrowItemPersonNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel borrowItemTeamNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel borrowItemContactNoLabel = new javax.swing.JLabel();
        borrowItemPersonNameValue = new javax.swing.JTextField();
        borrowItemPersonTeamValue = new javax.swing.JComboBox();
        borrowItemPersonContactNoValue = new javax.swing.JTextField();
        javax.swing.JLabel borrowItemPersonValueNameLabel = new javax.swing.JLabel();
        javax.swing.JLabel borrowItemPersonValueLabel = new javax.swing.JLabel();
        borrowItemPersonNameInclude = new javax.swing.JCheckBox();
        borrowItemPersonTeamInclude = new javax.swing.JCheckBox();
        borrowItemPersonContactNoInclude = new javax.swing.JCheckBox();
        javax.swing.JLabel borrowItemPersonIncludeLabel = new javax.swing.JLabel();
        javax.swing.JButton borrowItemSearchPersonButton = new javax.swing.JButton();
        javax.swing.JLabel borrowItemPurposeLabel = new javax.swing.JLabel();
        javax.swing.JLabel borrowItemBorrowLabel = new javax.swing.JLabel();
        javax.swing.JLabel borrowItemItemsLabel = new javax.swing.JLabel();
        javax.swing.JButton borrowItemBorrowButton = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        toolBar = new javax.swing.JToolBar();
        javax.swing.JButton home = new javax.swing.JButton();
        javax.swing.JToolBar.Separator toolSeparator1 = new javax.swing.JToolBar.Separator();
        javax.swing.JButton itemTool = new javax.swing.JButton();
        javax.swing.JButton personTool = new javax.swing.JButton();
        javax.swing.JButton transactionTool = new javax.swing.JButton();
        javax.swing.JMenuBar menuBar = new javax.swing.JMenuBar();
        javax.swing.JMenu fileMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
        javax.swing.JMenu manageMenu = new javax.swing.JMenu();
        javax.swing.JMenu itemSubMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem itemBrowse = new javax.swing.JMenuItem();
        javax.swing.JPopupMenu.Separator itemMenuSeparator = new javax.swing.JPopupMenu.Separator();
        javax.swing.JMenuItem itemAdd = new javax.swing.JMenuItem();
        javax.swing.JPopupMenu.Separator itemMenuSeparator2 = new javax.swing.JPopupMenu.Separator();
        javax.swing.JMenuItem itemTypeAdd = new javax.swing.JMenuItem();
        javax.swing.JMenuItem itemTypeEdit = new javax.swing.JMenuItem();
        javax.swing.JMenu personSubMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem personBrowse = new javax.swing.JMenuItem();
        javax.swing.JPopupMenu.Separator personMenuSeparator = new javax.swing.JPopupMenu.Separator();
        javax.swing.JMenuItem personAdd = new javax.swing.JMenuItem();
        javax.swing.JPopupMenu.Separator personMenuSeparator2 = new javax.swing.JPopupMenu.Separator();
        javax.swing.JMenuItem personTeamAdd = new javax.swing.JMenuItem();
        javax.swing.JMenuItem personTeamEdit = new javax.swing.JMenuItem();
        javax.swing.JMenu transactionSubMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem transactionBrowse = new javax.swing.JMenuItem();
        javax.swing.JMenu toolsMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem dbToolsDatabaseConn = new javax.swing.JMenuItem();
        javax.swing.JMenuItem dbToolsErrorConsole = new javax.swing.JMenuItem();
        javax.swing.JMenu helpMenu = new javax.swing.JMenu();
        javax.swing.JMenuItem sysInfoMenuItem = new javax.swing.JMenuItem();
        javax.swing.JMenuItem devInfoMenuItem = new javax.swing.JMenuItem();
        statusPanel = new javax.swing.JPanel();
        javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
        statusMessageLabel = new javax.swing.JLabel();
        statusAnimationLabel = new javax.swing.JLabel();
        progressBar = new javax.swing.JProgressBar();

        mainPanel.setName("mainPanel"); // NOI18N
        mainPanel.setPreferredSize(new java.awt.Dimension(850, 600));

        screensContainer.setName("screensContainer"); // NOI18N

        homePage.setMinimumSize(new java.awt.Dimension(800, 510));
        homePage.setName("homePage"); // NOI18N
        homePage.setOpaque(false);
        homePage.setPreferredSize(new java.awt.Dimension(800, 510));

        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/Nxtgen Splash Screen.png"))); // NOI18N
        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(nxtgeninventorysystem.Driver.class).getContext().getResourceMap(Gui.class);
        jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
        jLabel2.setName("jLabel2"); // NOI18N

        javax.swing.GroupLayout homePageLayout = new javax.swing.GroupLayout(homePage);
        homePage.setLayout(homePageLayout);
        homePageLayout.setHorizontalGroup(
            homePageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 730, Short.MAX_VALUE)
            .addGroup(homePageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(homePageLayout.createSequentialGroup()
                    .addGap(0, 173, Short.MAX_VALUE)
                    .addComponent(jLabel2)
                    .addGap(0, 172, Short.MAX_VALUE)))
        );
        homePageLayout.setVerticalGroup(
            homePageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 510, Short.MAX_VALUE)
            .addGroup(homePageLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(homePageLayout.createSequentialGroup()
                    .addGap(0, 111, Short.MAX_VALUE)
                    .addComponent(jLabel2)
                    .addGap(0, 110, Short.MAX_VALUE)))
        );

        jLabel2.setVisible(true);

        homePage.setBounds(60, 0, 730, 510);
        screensContainer.add(homePage, javax.swing.JLayeredPane.DEFAULT_LAYER);

        readItem.setToolTipText(resourceMap.getString("readItem.toolTipText")); // NOI18N
        readItem.setMinimumSize(new java.awt.Dimension(600, 510));
        readItem.setName("readItem"); // NOI18N
        readItem.setOpaque(false);
        readItem.setPreferredSize(new java.awt.Dimension(600, 510));
        readItem.setVerifyInputWhenFocusTarget(false);

        readItemTransactionsOnThisItem.setName("readItemTransactionsOnThisItem"); // NOI18N

        readItemTransactionsOnThisItemTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "No.", "Person", "Count", "Date", "Type"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        readItemTransactionsOnThisItemTable.setName("readItemTransactionsOnThisItemTable"); // NOI18N
        readItemTransactionsOnThisItemTable.setRowHeight(22);
        readItemTransactionsOnThisItemTable.getTableHeader().setResizingAllowed(false);
        readItemTransactionsOnThisItemTable.getTableHeader().setReorderingAllowed(false);
        readItemTransactionsOnThisItemTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                selectTransaction(evt);
            }
        });
        readItemTransactionsOnThisItem.setViewportView(readItemTransactionsOnThisItemTable);
        readItemTransactionsOnThisItemTable.getColumnModel().getColumn(0).setResizable(false);
        readItemTransactionsOnThisItemTable.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("readItemTransactionsOnThisItemTable.columnModel.title0")); // NOI18N
        readItemTransactionsOnThisItemTable.getColumnModel().getColumn(1).setResizable(false);
        readItemTransactionsOnThisItemTable.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("readItemTransactionsOnThisItemTable.columnModel.title1")); // NOI18N
        readItemTransactionsOnThisItemTable.getColumnModel().getColumn(2).setResizable(false);
        readItemTransactionsOnThisItemTable.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("readItemTransactionsOnThisItemTable.columnModel.title2")); // NOI18N
        readItemTransactionsOnThisItemTable.getColumnModel().getColumn(3).setResizable(false);
        readItemTransactionsOnThisItemTable.getColumnModel().getColumn(3).setHeaderValue(resourceMap.getString("readItemTransactionsOnThisItemTable.columnModel.title3")); // NOI18N
        readItemTransactionsOnThisItemTable.getColumnModel().getColumn(4).setResizable(false);
        readItemTransactionsOnThisItemTable.getColumnModel().getColumn(4).setHeaderValue(resourceMap.getString("readItemTransactionsOnThisItemTable.columnModel.title4")); // NOI18N
        readItemTransactionsOnThisItemTable.getTableHeader().addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent mouseEvent) {
                int index = readItemTransactionsOnThisItemTable.convertColumnIndexToModel(readItemTransactionsOnThisItemTable.columnAtPoint(mouseEvent.getPoint()));
                Gui.setTransactionOrderAtPage(Gui.Page.ReadItem, index);
                Actions.item.gotoReadItem();
            }
        });

        readItemNameDisplayLabel.setFont(new java.awt.Font("Tahoma", 1, 24));
        readItemNameDisplayLabel.setText(resourceMap.getString("readItemNameDisplayLabel.text")); // NOI18N
        readItemNameDisplayLabel.setName("readItemNameDisplayLabel"); // NOI18N

        readItemIdLabel.setText(resourceMap.getString("readItemIdLabel.text")); // NOI18N
        readItemIdLabel.setName("readItemIdLabel"); // NOI18N

        readItemNameLabel.setText(resourceMap.getString("readItemNameLabel.text")); // NOI18N
        readItemNameLabel.setName("readItemNameLabel"); // NOI18N

        readItemTypeLabel.setText(resourceMap.getString("readItemTypeLabel.text")); // NOI18N
        readItemTypeLabel.setName("readItemTypeLabel"); // NOI18N

        readItemDescriptionLabel.setText(resourceMap.getString("readItemDescriptionLabel.text")); // NOI18N
        readItemDescriptionLabel.setName("readItemDescriptionLabel"); // NOI18N

        readItemBorrowerLabel.setText(resourceMap.getString("readItemBorrowerLabel.text")); // NOI18N
        readItemBorrowerLabel.setName("readItemBorrowerLabel"); // NOI18N

        readItemId.setFont(new java.awt.Font("Tahoma", 1, 13));
        readItemId.setText(resourceMap.getString("readItemId.text")); // NOI18N
        readItemId.setName("readItemId"); // NOI18N

        readItemName.setFont(new java.awt.Font("Tahoma", 1, 13));
        readItemName.setText(resourceMap.getString("readItemName.text")); // NOI18N
        readItemName.setName("readItemName"); // NOI18N

        readItemType.setFont(new java.awt.Font("Tahoma", 1, 13));
        readItemType.setText(resourceMap.getString("readItemType.text")); // NOI18N
        readItemType.setName("readItemType"); // NOI18N

        readItemDescription.setFont(new java.awt.Font("Tahoma", 1, 13));
        readItemDescription.setText(resourceMap.getString("readItemDescription.text")); // NOI18N
        readItemDescription.setName("readItemDescription"); // NOI18N

        readItemBorrower.setFont(new java.awt.Font("Tahoma", 1, 13));
        readItemBorrower.setText(resourceMap.getString("readItemBorrower.text")); // NOI18N
        readItemBorrower.setName("readItemBorrower"); // NOI18N

        readItemEditInformationButton.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.gotoUpdateItem();
            }
        });
        readItemEditInformationButton.setText(resourceMap.getString("readItemEditInformationButton.text")); // NOI18N
        readItemEditInformationButton.setName("readItemEditInformationButton"); // NOI18N

        readItemTransactionOnThisItemLabel.setText(resourceMap.getString("readItemTransactionOnThisItemLabel.text")); // NOI18N
        readItemTransactionOnThisItemLabel.setName("readItemTransactionOnThisItemLabel"); // NOI18N

        javax.swing.GroupLayout readItemLayout = new javax.swing.GroupLayout(readItem);
        readItem.setLayout(readItemLayout);
        readItemLayout.setHorizontalGroup(
            readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(readItemLayout.createSequentialGroup()
                .addGroup(readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(readItemLayout.createSequentialGroup()
                        .addComponent(readItemNameDisplayLabel)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 345, Short.MAX_VALUE)
                        .addComponent(readItemEditInformationButton))
                    .addGroup(readItemLayout.createSequentialGroup()
                        .addGap(36, 36, 36)
                        .addGroup(readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(readItemTransactionsOnThisItem, javax.swing.GroupLayout.PREFERRED_SIZE, 524, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(readItemLayout.createSequentialGroup()
                                .addGroup(readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(readItemNameLabel)
                                    .addComponent(readItemIdLabel)
                                    .addComponent(readItemTypeLabel)
                                    .addComponent(readItemDescriptionLabel)
                                    .addComponent(readItemBorrowerLabel)
                                    .addComponent(readItemTransactionOnThisItemLabel))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(readItemBorrower)
                                    .addComponent(readItemType)
                                    .addComponent(readItemName)
                                    .addComponent(readItemId)
                                    .addComponent(readItemDescription))))))
                .addContainerGap())
        );
        readItemLayout.setVerticalGroup(
            readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(readItemLayout.createSequentialGroup()
                .addGroup(readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(readItemNameDisplayLabel)
                    .addComponent(readItemEditInformationButton))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(readItemIdLabel)
                    .addComponent(readItemId))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(readItemNameLabel)
                    .addComponent(readItemName))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(readItemTypeLabel)
                    .addComponent(readItemType))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(readItemDescriptionLabel)
                    .addComponent(readItemDescription, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(readItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(readItemBorrowerLabel)
                    .addComponent(readItemBorrower))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(readItemTransactionOnThisItemLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(readItemTransactionsOnThisItem, javax.swing.GroupLayout.PREFERRED_SIZE, 287, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(93, 93, 93))
        );

        readItem.setBounds(130, 10, 600, 510);
        screensContainer.add(readItem, javax.swing.JLayeredPane.DEFAULT_LAYER);

        readPerson.setMinimumSize(new java.awt.Dimension(600, 510));
        readPerson.setName("readPerson"); // NOI18N
        readPerson.setOpaque(false);
        readPerson.setPreferredSize(new java.awt.Dimension(600, 510));

        readPersonTransactionsByThisPerson.setName("readPersonTransactionsByThisPerson"); // NOI18N

        readPersonTransactionsByThisPersonTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "No.", "Person", "Count", "Date", "Type"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        readPersonTransactionsByThisPersonTable.setName("readPersonTransactionsByThisPersonTable"); // NOI18N
        readPersonTransactionsByThisPersonTable.setRowHeight(22);
        readPersonTransactionsByThisPersonTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        readPersonTransactionsByThisPersonTable.getTableHeader().setResizingAllowed(false);
        readPersonTransactionsByThisPersonTable.getTableHeader().setReorderingAllowed(false);
        readPersonTransactionsByThisPersonTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                selectTransaction(evt);
            }
        });
        readPersonTransactionsByThisPerson.setViewportView(readPersonTransactionsByThisPersonTable);
        readPersonTransactionsByThisPersonTable.getColumnModel().getColumn(0).setResizable(false);
        readPersonTransactionsByThisPersonTable.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("readPersonTransactionsByThisPersonTable.columnModel.title0")); // NOI18N
        readPersonTransactionsByThisPersonTable.getColumnModel().getColumn(1).setResizable(false);
        readPersonTransactionsByThisPersonTable.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("readPersonTransactionsByThisPersonTable.columnModel.title1")); // NOI18N
        readPersonTransactionsByThisPersonTable.getColumnModel().getColumn(2).setResizable(false);
        readPersonTransactionsByThisPersonTable.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("readPersonTransactionsByThisPersonTable.columnModel.title2")); // NOI18N
        readPersonTransactionsByThisPersonTable.getColumnModel().getColumn(3).setResizable(false);
        readPersonTransactionsByThisPersonTable.getColumnModel().getColumn(3).setHeaderValue(resourceMap.getString("readPersonTransactionsByThisPersonTable.columnModel.title3")); // NOI18N
        readPersonTransactionsByThisPersonTable.getColumnModel().getColumn(4).setResizable(false);
        readPersonTransactionsByThisPersonTable.getColumnModel().getColumn(4).setHeaderValue(resourceMap.getString("readPersonTransactionsByThisPersonTable.columnModel.title4")); // NOI18N
        readPersonTransactionsByThisPersonTable.getTableHeader().addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent mouseEvent) {
                int index = readPersonTransactionsByThisPersonTable.convertColumnIndexToModel(readPersonTransactionsByThisPersonTable.columnAtPoint(mouseEvent.getPoint()));
                Gui.setTransactionOrderAtPage(Gui.Page.ReadPerson, index);
                Actions.person.gotoReadPerson();
            }
        });

        readPersonNameDisplayLabel.setFont(new java.awt.Font("Tahoma", 1, 24));
        readPersonNameDisplayLabel.setText(resourceMap.getString("readPersonNameDisplayLabel.text")); // NOI18N
        readPersonNameDisplayLabel.setName("readPersonNameDisplayLabel"); // NOI18N

        readPersonIdLabel.setText(resourceMap.getString("readPersonIdLabel.text")); // NOI18N
        readPersonIdLabel.setName("readPersonIdLabel"); // NOI18N

        readPersonNameLabel.setText(resourceMap.getString("readPersonNameLabel.text")); // NOI18N
        readPersonNameLabel.setName("readPersonNameLabel"); // NOI18N

        readPersonContactNumberLabel.setText(resourceMap.getString("readPersonContactNumberLabel.text")); // NOI18N
        readPersonContactNumberLabel.setName("readPersonContactNumberLabel"); // NOI18N

        readTeamLabel.setText(resourceMap.getString("readTeamLabel.text")); // NOI18N
        readTeamLabel.setName("readTeamLabel"); // NOI18N

        readPersonTransactionsByThisPersonLabel.setText(resourceMap.getString("readPersonTransactionsByThisPersonLabel.text")); // NOI18N
        readPersonTransactionsByThisPersonLabel.setName("readPersonTransactionsByThisPersonLabel"); // NOI18N

        readPersonId.setFont(new java.awt.Font("Tahoma", 1, 13));
        readPersonId.setText(resourceMap.getString("readPersonId.text")); // NOI18N
        readPersonId.setName("readPersonId"); // NOI18N

        readPersonName.setFont(new java.awt.Font("Tahoma", 1, 13));
        readPersonName.setText(resourceMap.getString("readPersonName.text")); // NOI18N
        readPersonName.setName("readPersonName"); // NOI18N

        readPersonContactNumber.setFont(new java.awt.Font("Tahoma", 1, 13));
        readPersonContactNumber.setText(resourceMap.getString("readPersonContactNumber.text")); // NOI18N
        readPersonContactNumber.setName("readPersonContactNumber"); // NOI18N

        readPersonTeam.setFont(new java.awt.Font("Tahoma", 1, 13));
        readPersonTeam.setText(resourceMap.getString("readPersonTeam.text")); // NOI18N
        readPersonTeam.setName("readPersonTeam"); // NOI18N

        readPersonCurrentlyBorrowedItems.setName("readPersonCurrentlyBorrowedItems"); // NOI18N

        readPersonCurrentlyBorrowedItemsTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "No.", "Name", "Type", "Description", "Possession"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        readPersonCurrentlyBorrowedItemsTable.setName("readPersonCurrentlyBorrowedItemsTable"); // NOI18N
        readPersonCurrentlyBorrowedItemsTable.setRowHeight(22);
        readPersonCurrentlyBorrowedItemsTable.getTableHeader().setReorderingAllowed(false);
        readPersonCurrentlyBorrowedItemsTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                selectItem(evt);
            }
        });
        readPersonCurrentlyBorrowedItems.setViewportView(readPersonCurrentlyBorrowedItemsTable);
        readPersonCurrentlyBorrowedItemsTable.getColumnModel().getColumn(0).setResizable(false);
        readPersonCurrentlyBorrowedItemsTable.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("readPersonCurrentlyBorrowedItemsTable.columnModel.title0")); // NOI18N
        readPersonCurrentlyBorrowedItemsTable.getColumnModel().getColumn(1).setResizable(false);
        readPersonCurrentlyBorrowedItemsTable.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("readPersonCurrentlyBorrowedItemsTable.columnModel.title1")); // NOI18N
        readPersonCurrentlyBorrowedItemsTable.getColumnModel().getColumn(2).setResizable(false);
        readPersonCurrentlyBorrowedItemsTable.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("readPersonCurrentlyBorrowedItemsTable.columnModel.title2")); // NOI18N
        readPersonCurrentlyBorrowedItemsTable.getColumnModel().getColumn(3).setResizable(false);
        readPersonCurrentlyBorrowedItemsTable.getColumnModel().getColumn(3).setHeaderValue(resourceMap.getString("readPersonCurrentlyBorrowedItemsTable.columnModel.title3")); // NOI18N
        readPersonCurrentlyBorrowedItemsTable.getColumnModel().getColumn(4).setResizable(false);
        readPersonCurrentlyBorrowedItemsTable.getColumnModel().getColumn(4).setHeaderValue(resourceMap.getString("readPersonCurrentlyBorrowedItemsTable.columnModel.title4")); // NOI18N
        readPersonCurrentlyBorrowedItemsTable.getTableHeader().addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent mouseEvent) {
                int index = readPersonCurrentlyBorrowedItemsTable.convertColumnIndexToModel(readPersonCurrentlyBorrowedItemsTable.columnAtPoint(mouseEvent.getPoint()));
                Gui.setItemOrderAtPage(Gui.Page.ReadPerson, index);
                Actions.person.gotoReadPerson();
            }
        });

        readPersonCurrentlyBorrowedItemsLabel.setName("readPersonCurrentlyBorrowedItemsLabel"); // NOI18N

        readPersonEditInformationButton.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.person.gotoUpdatePerson();
            }
        });
        readPersonEditInformationButton.setText(resourceMap.getString("readPersonEditInformationButton.text")); // NOI18N
        readPersonEditInformationButton.setName("readPersonEditInformationButton"); // NOI18N

        readPersonReturnItemsButton.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.doReturnItem();
            }
        });
        readPersonReturnItemsButton.setText(resourceMap.getString("readPersonReturnItemsButton.text")); // NOI18N
        readPersonReturnItemsButton.setName("readPersonReturnItemsButton"); // NOI18N

        javax.swing.GroupLayout readPersonLayout = new javax.swing.GroupLayout(readPerson);
        readPerson.setLayout(readPersonLayout);
        readPersonLayout.setHorizontalGroup(
            readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(readPersonLayout.createSequentialGroup()
                .addGap(742, 742, 742)
                .addComponent(readPersonCurrentlyBorrowedItemsLabel))
            .addGroup(readPersonLayout.createSequentialGroup()
                .addComponent(readPersonNameDisplayLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 308, Short.MAX_VALUE)
                .addComponent(readPersonEditInformationButton)
                .addGap(152, 152, 152))
            .addGroup(readPersonLayout.createSequentialGroup()
                .addGap(37, 37, 37)
                .addGroup(readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(readPersonLayout.createSequentialGroup()
                        .addGroup(readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(readPersonIdLabel)
                            .addComponent(readPersonNameLabel)
                            .addComponent(readTeamLabel)
                            .addComponent(readPersonContactNumberLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(readPersonTeam)
                            .addComponent(readPersonName)
                            .addComponent(readPersonId)
                            .addComponent(readPersonContactNumber)))
                    .addGroup(readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(readPersonTransactionsByThisPerson, javax.swing.GroupLayout.Alignment.TRAILING)
                        .addComponent(readPersonCurrentlyBorrowedItems, javax.swing.GroupLayout.DEFAULT_SIZE, 524, Short.MAX_VALUE)
                        .addComponent(readPersonTransactionsByThisPersonLabel)
                        .addComponent(readPersonReturnItemsButton, javax.swing.GroupLayout.Alignment.TRAILING)))
                .addContainerGap(181, Short.MAX_VALUE))
        );
        readPersonLayout.setVerticalGroup(
            readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(readPersonLayout.createSequentialGroup()
                .addGroup(readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(readPersonLayout.createSequentialGroup()
                        .addGap(126, 126, 126)
                        .addComponent(readPersonCurrentlyBorrowedItemsLabel))
                    .addGroup(readPersonLayout.createSequentialGroup()
                        .addGroup(readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(readPersonNameDisplayLabel)
                            .addComponent(readPersonEditInformationButton))
                        .addGap(18, 18, 18)
                        .addGroup(readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(readPersonId)
                            .addComponent(readPersonIdLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(readPersonName)
                            .addComponent(readPersonNameLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(readPersonContactNumber)
                            .addComponent(readPersonContactNumberLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(readPersonTeam)
                            .addComponent(readTeamLabel))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
                .addComponent(readPersonCurrentlyBorrowedItems, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(readPersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(readPersonLayout.createSequentialGroup()
                        .addGap(35, 35, 35)
                        .addComponent(readPersonTransactionsByThisPersonLabel))
                    .addGroup(readPersonLayout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(readPersonReturnItemsButton)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(readPersonTransactionsByThisPerson, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(23, 23, 23))
        );

        readPerson.setBounds(130, 10, 600, 510);
        screensContainer.add(readPerson, javax.swing.JLayeredPane.DEFAULT_LAYER);

        readTransaction.setMinimumSize(new java.awt.Dimension(600, 510));
        readTransaction.setName("readTransaction"); // NOI18N
        readTransaction.setOpaque(false);
        readTransaction.setPreferredSize(new java.awt.Dimension(600, 510));

        readTransactionDateDisplayLabel.setFont(new java.awt.Font("Tahoma", 1, 24));
        readTransactionDateDisplayLabel.setText("TRANSACTION DATE HERE"); // NOI18N
        readTransactionDateDisplayLabel.setName("readTransactionDateDisplayLabel"); // NOI18N

        readTransactionIdLabel.setText("Transaction No."); // NOI18N
        readTransactionIdLabel.setName("readTransactionIdLabel"); // NOI18N

        readTransactionTypeLabel.setText(resourceMap.getString("readTransactionTypeLabel.text")); // NOI18N
        readTransactionTypeLabel.setName("readTransactionTypeLabel"); // NOI18N

        readTransactionPersonLabel.setText(resourceMap.getString("readTransactionPersonLabel.text")); // NOI18N
        readTransactionPersonLabel.setName("readTransactionPersonLabel"); // NOI18N

        readTransactionPurposeLabel.setText(resourceMap.getString("readTransactionPurposeLabel.text")); // NOI18N
        readTransactionPurposeLabel.setAlignmentX(0.5F);
        readTransactionPurposeLabel.setName("readTransactionPurposeLabel"); // NOI18N

        readTransactionId.setFont(new java.awt.Font("Tahoma", 1, 13));
        readTransactionId.setText(resourceMap.getString("readTransactionId.text")); // NOI18N
        readTransactionId.setName("readTransactionId"); // NOI18N

        readTransactionType.setFont(new java.awt.Font("Tahoma", 1, 13));
        readTransactionType.setText(resourceMap.getString("readTransactionType.text")); // NOI18N
        readTransactionType.setName("readTransactionType"); // NOI18N

        readTransactionPerson.setFont(new java.awt.Font("Tahoma", 1, 13));
        readTransactionPerson.setText(resourceMap.getString("readTransactionPerson.text")); // NOI18N
        readTransactionPerson.setName("readTransactionPerson"); // NOI18N

        readTransactionPurpose.setFont(new java.awt.Font("Tahoma", 1, 13));
        readTransactionPurpose.setText(resourceMap.getString("readTransactionPurpose.text")); // NOI18N
        readTransactionPurpose.setName("readTransactionPurpose"); // NOI18N

        readTransactionViewPersonButton.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.person.gotoReadPerson();
            }
        });
        readTransactionViewPersonButton.setText(resourceMap.getString("readTransactionViewPersonButton.text")); // NOI18N
        readTransactionViewPersonButton.setName("readTransactionViewPersonButton"); // NOI18N

        readTransactionItemsLabel.setName("readTransactionItemsLabel"); // NOI18N

        readTransactionsItemsPane.setName("readTransactionsItemsPane"); // NOI18N

        readTransactionsItemsTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Item No.", "Name", "Type", "Description", "In Possession Of"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        readTransactionsItemsTable.setName("readTransactionsItemsTable"); // NOI18N
        readTransactionsItemsTable.setRowHeight(22);
        readTransactionsItemsTable.getTableHeader().setResizingAllowed(false);
        readTransactionsItemsTable.getTableHeader().setReorderingAllowed(false);
        readTransactionsItemsTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                selectItem(evt);
            }
        });
        readTransactionsItemsPane.setViewportView(readTransactionsItemsTable);
        readTransactionsItemsTable.getColumnModel().getColumn(0).setResizable(false);
        readTransactionsItemsTable.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("readTransactionsItemsTable.columnModel.title0")); // NOI18N
        readTransactionsItemsTable.getColumnModel().getColumn(1).setResizable(false);
        readTransactionsItemsTable.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("readTransactionsItemsTable.columnModel.title1")); // NOI18N
        readTransactionsItemsTable.getColumnModel().getColumn(2).setResizable(false);
        readTransactionsItemsTable.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("readTransactionsItemsTable.columnModel.title2")); // NOI18N
        readTransactionsItemsTable.getColumnModel().getColumn(3).setResizable(false);
        readTransactionsItemsTable.getColumnModel().getColumn(3).setHeaderValue(resourceMap.getString("readTransactionsItemsTable.columnModel.title3")); // NOI18N
        readTransactionsItemsTable.getColumnModel().getColumn(4).setResizable(false);
        readTransactionsItemsTable.getColumnModel().getColumn(4).setHeaderValue(resourceMap.getString("readTransactionsItemsTable.columnModel.title4")); // NOI18N
        readTransactionsItemsTable.getTableHeader().addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent mouseEvent) {
                int index = readTransactionsItemsTable.convertColumnIndexToModel(readTransactionsItemsTable.columnAtPoint(mouseEvent.getPoint()));
                Gui.setItemOrderAtPage(Gui.Page.ReadTransaction, index);
                Actions.transaction.gotoReadTransaction();
            }
        });

        javax.swing.GroupLayout readTransactionLayout = new javax.swing.GroupLayout(readTransaction);
        readTransaction.setLayout(readTransactionLayout);
        readTransactionLayout.setHorizontalGroup(
            readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(readTransactionLayout.createSequentialGroup()
                .addGroup(readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(readTransactionDateDisplayLabel)
                    .addGroup(readTransactionLayout.createSequentialGroup()
                        .addGap(15, 15, 15)
                        .addComponent(readTransactionItemsLabel))
                    .addGroup(readTransactionLayout.createSequentialGroup()
                        .addGap(36, 36, 36)
                        .addGroup(readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(readTransactionLayout.createSequentialGroup()
                                .addComponent(readTransactionPersonLabel)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(readTransactionViewPersonButton)
                                    .addComponent(readTransactionPerson)))
                            .addGroup(readTransactionLayout.createSequentialGroup()
                                .addGap(39, 39, 39)
                                .addComponent(readTransactionPurposeLabel)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(readTransactionPurpose))
                            .addComponent(readTransactionsItemsPane, javax.swing.GroupLayout.PREFERRED_SIZE, 524, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(readTransactionLayout.createSequentialGroup()
                                .addGroup(readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(readTransactionTypeLabel)
                                    .addComponent(readTransactionIdLabel))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(readTransactionId)
                                    .addComponent(readTransactionType))))))
                .addContainerGap(40, Short.MAX_VALUE))
        );
        readTransactionLayout.setVerticalGroup(
            readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(readTransactionLayout.createSequentialGroup()
                .addComponent(readTransactionDateDisplayLabel)
                .addGap(40, 40, 40)
                .addGroup(readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(readTransactionItemsLabel)
                    .addGroup(readTransactionLayout.createSequentialGroup()
                        .addGroup(readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(readTransactionPersonLabel)
                            .addComponent(readTransactionPerson))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(readTransactionViewPersonButton)))
                .addGap(30, 30, 30)
                .addGroup(readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(readTransactionIdLabel)
                    .addComponent(readTransactionId))
                .addGap(8, 8, 8)
                .addGroup(readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(readTransactionTypeLabel)
                    .addComponent(readTransactionType))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(readTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(readTransactionPurposeLabel)
                    .addComponent(readTransactionPurpose))
                .addGap(18, 18, 18)
                .addComponent(readTransactionsItemsPane, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(140, Short.MAX_VALUE))
        );

        readTransaction.setBounds(130, 10, 600, 510);
        screensContainer.add(readTransaction, javax.swing.JLayeredPane.DEFAULT_LAYER);

        browseItem.setName("browseItem"); // NOI18N
        browseItem.setOpaque(false);

        itemSearchPanel.setBackground(new java.awt.Color(255, 255, 255));
        itemSearchPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        itemSearchPanel.setName("itemSearchPanel"); // NOI18N

        itemNoLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        itemNoLabel.setText(resourceMap.getString("itemNoLabel.text")); // NOI18N
        itemNoLabel.setName("itemNoLabel"); // NOI18N

        itemNameLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        itemNameLabel.setText(resourceMap.getString("itemNameLabel.text")); // NOI18N
        itemNameLabel.setName("itemNameLabel"); // NOI18N

        itemTypeLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        itemTypeLabel.setText(resourceMap.getString("itemTypeLabel.text")); // NOI18N
        itemTypeLabel.setName("itemTypeLabel"); // NOI18N

        itemDescLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        itemDescLabel.setText(resourceMap.getString("itemDescLabel.text")); // NOI18N
        itemDescLabel.setName("itemDescLabel"); // NOI18N

        itemAvailabilityLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        itemAvailabilityLabel.setText(resourceMap.getString("itemAvailabilityLabel.text")); // NOI18N
        itemAvailabilityLabel.setName("itemAvailabilityLabel"); // NOI18N

        itemNoValue.setName("itemNoValue"); // NOI18N

        itemNameValue.setBackground(new java.awt.Color(255, 255, 240));
        itemNameValue.setText(resourceMap.getString("itemNameValue.text")); // NOI18N
        itemNameValue.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        itemNameValue.setName("itemNameValue"); // NOI18N

        itemTypeValue.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "--Choose Item Type--" }));
        itemTypeValue.setName("itemTypeValue"); // NOI18N

        itemDescValue.setBackground(new java.awt.Color(255, 255, 240));
        itemDescValue.setText(resourceMap.getString("itemDescValue.text")); // NOI18N
        itemDescValue.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        itemDescValue.setName("itemDescValue"); // NOI18N

        itemAvailabilityValue.setBackground(new java.awt.Color(255, 255, 255));
        itemAvailabilityValue.setText(resourceMap.getString("itemAvailabilityValue.text")); // NOI18N
        itemAvailabilityValue.setName("itemAvailabilityValue"); // NOI18N

        itemValueNameLabel.setText(resourceMap.getString("itemValueNameLabel.text")); // NOI18N
        itemValueNameLabel.setName("itemValueNameLabel"); // NOI18N

        itemValueLabel.setText(resourceMap.getString("itemValueLabel.text")); // NOI18N
        itemValueLabel.setName("itemValueLabel"); // NOI18N

        itemNoInclude.setBackground(new java.awt.Color(255, 255, 255));
        itemNoInclude.setName("itemNoInclude"); // NOI18N

        itemNameInclude.setBackground(new java.awt.Color(255, 255, 255));
        itemNameInclude.setName("itemNameInclude"); // NOI18N

        itemTypeInclude.setBackground(new java.awt.Color(255, 255, 255));
        itemTypeInclude.setName("itemTypeInclude"); // NOI18N

        itemDescInclude.setBackground(new java.awt.Color(255, 255, 255));
        itemDescInclude.setName("itemDescInclude"); // NOI18N

        itemAvailabilityInclude.setBackground(new java.awt.Color(255, 255, 255));
        itemAvailabilityInclude.setName("itemAvailabilityInclude"); // NOI18N

        itemIncludeLabel.setText(resourceMap.getString("itemIncludeLabel.text")); // NOI18N
        itemIncludeLabel.setName("itemIncludeLabel"); // NOI18N

        javax.swing.GroupLayout itemSearchPanelLayout = new javax.swing.GroupLayout(itemSearchPanel);
        itemSearchPanel.setLayout(itemSearchPanelLayout);
        itemSearchPanelLayout.setHorizontalGroup(
            itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(itemSearchPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(itemDescLabel)
                    .addComponent(itemTypeLabel)
                    .addComponent(itemNameLabel)
                    .addComponent(itemNoLabel)
                    .addComponent(itemValueNameLabel)
                    .addComponent(itemAvailabilityLabel))
                .addGap(18, 18, 18)
                .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(itemSearchPanelLayout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(itemDescValue)
                            .addComponent(itemTypeValue, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(itemNameValue)
                            .addComponent(itemNoValue, javax.swing.GroupLayout.PREFERRED_SIZE, 185, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(itemAvailabilityValue, javax.swing.GroupLayout.DEFAULT_SIZE, 185, Short.MAX_VALUE)))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, itemSearchPanelLayout.createSequentialGroup()
                        .addComponent(itemValueLabel)
                        .addGap(77, 77, 77)))
                .addGap(38, 38, 38)
                .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(itemNoInclude)
                    .addComponent(itemAvailabilityInclude)
                    .addComponent(itemDescInclude)
                    .addComponent(itemTypeInclude)
                    .addComponent(itemNameInclude)
                    .addComponent(itemIncludeLabel))
                .addGap(24, 24, 24))
        );
        itemSearchPanelLayout.setVerticalGroup(
            itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(itemSearchPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(itemValueLabel)
                    .addComponent(itemValueNameLabel)
                    .addComponent(itemIncludeLabel))
                .addGap(18, 18, 18)
                .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(itemSearchPanelLayout.createSequentialGroup()
                        .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(itemNoValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(itemNoLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(itemNameValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(itemNameLabel)))
                    .addGroup(itemSearchPanelLayout.createSequentialGroup()
                        .addComponent(itemNoInclude)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(itemNameInclude)))
                .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(itemSearchPanelLayout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(itemTypeValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(itemTypeLabel)))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, itemSearchPanelLayout.createSequentialGroup()
                        .addGap(11, 11, 11)
                        .addComponent(itemTypeInclude)))
                .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(itemSearchPanelLayout.createSequentialGroup()
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(itemDescValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(itemDescLabel)))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, itemSearchPanelLayout.createSequentialGroup()
                        .addGap(7, 7, 7)
                        .addComponent(itemDescInclude)))
                .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(itemSearchPanelLayout.createSequentialGroup()
                        .addGap(6, 6, 6)
                        .addGroup(itemSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(itemAvailabilityLabel)
                            .addComponent(itemAvailabilityValue))
                        .addGap(11, 11, 11))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, itemSearchPanelLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(itemAvailabilityInclude)
                        .addContainerGap())))
        );

        itemBrowseScrollPane.setName("itemBrowseScrollPane"); // NOI18N

        itemBrowseTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Item No.", "Name", "Type", "Description", "In Possession Of"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        itemBrowseTable.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        itemBrowseTable.setDropMode(javax.swing.DropMode.INSERT_ROWS);
        itemBrowseTable.setName("itemBrowseTable"); // NOI18N
        itemBrowseTable.setRowHeight(22);
        itemBrowseTable.getTableHeader().setResizingAllowed(false);
        itemBrowseTable.getTableHeader().setReorderingAllowed(false);
        itemBrowseTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                selectItem(evt);
            }
        });
        itemBrowseScrollPane.setViewportView(itemBrowseTable);
        itemBrowseTable.getColumnModel().getColumn(0).setResizable(false);
        itemBrowseTable.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("itemBrowseTable.columnModel.title0")); // NOI18N
        itemBrowseTable.getColumnModel().getColumn(1).setResizable(false);
        itemBrowseTable.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("itemBrowseTable.columnModel.title1")); // NOI18N
        itemBrowseTable.getColumnModel().getColumn(2).setResizable(false);
        itemBrowseTable.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("itemBrowseTable.columnModel.title2")); // NOI18N
        itemBrowseTable.getColumnModel().getColumn(3).setResizable(false);
        itemBrowseTable.getColumnModel().getColumn(3).setHeaderValue(resourceMap.getString("itemBrowseTable.columnModel.title3")); // NOI18N
        itemBrowseTable.getColumnModel().getColumn(4).setResizable(false);
        itemBrowseTable.getColumnModel().getColumn(4).setHeaderValue(resourceMap.getString("itemBrowseTable.columnModel.title4")); // NOI18N
        itemBrowseTable.getTableHeader().addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent mouseEvent) {
                int index = itemBrowseTable.convertColumnIndexToModel(itemBrowseTable.columnAtPoint(mouseEvent.getPoint()));
                Gui.setItemOrderAtPage(Gui.Page.BrowseItem, index);
                Actions.item.doSearchItem();
            }
        });

        itemSearchItem.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.doSearchItem();
            }
        });
        itemSearchItem.setFont(new java.awt.Font("Tahoma", 1, 11));
        itemSearchItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/searchItem.png"))); // NOI18N
        itemSearchItem.setText(resourceMap.getString("itemSearchItem.text")); // NOI18N
        itemSearchItem.setIconTextGap(10);
        itemSearchItem.setName("itemSearchItem"); // NOI18N

        itemBorrowItem.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.gotoBorrowItems();
            }
        });
        itemBorrowItem.setFont(new java.awt.Font("Tahoma", 1, 11));
        itemBorrowItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/borrowItem.png"))); // NOI18N
        itemBorrowItem.setText(resourceMap.getString("itemBorrowItem.text")); // NOI18N
        itemBorrowItem.setIconTextGap(10);
        itemBorrowItem.setName("itemBorrowItem"); // NOI18N

        itemCreateItem.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.gotoCreateItem();
            }
        });
        itemCreateItem.setFont(new java.awt.Font("Tahoma", 1, 11));
        itemCreateItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/createItem.png"))); // NOI18N
        itemCreateItem.setText(resourceMap.getString("itemCreateItem.text")); // NOI18N
        itemCreateItem.setIconTextGap(10);
        itemCreateItem.setName("itemCreateItem"); // NOI18N

        itemDeleteItem.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.doDeleteItem();
            }
        });
        itemDeleteItem.setFont(new java.awt.Font("Tahoma", 1, 11));
        itemDeleteItem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/deleteItem.png"))); // NOI18N
        itemDeleteItem.setText(resourceMap.getString("itemDeleteItem.text")); // NOI18N
        itemDeleteItem.setIconTextGap(10);
        itemDeleteItem.setName("itemDeleteItem"); // NOI18N

        javax.swing.GroupLayout browseItemLayout = new javax.swing.GroupLayout(browseItem);
        browseItem.setLayout(browseItemLayout);
        browseItemLayout.setHorizontalGroup(
            browseItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(browseItemLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(browseItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(itemBrowseScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 780, Short.MAX_VALUE)
                    .addGroup(browseItemLayout.createSequentialGroup()
                        .addComponent(itemSearchPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 406, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(browseItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(itemBorrowItem, javax.swing.GroupLayout.DEFAULT_SIZE, 368, Short.MAX_VALUE)
                            .addComponent(itemCreateItem, javax.swing.GroupLayout.DEFAULT_SIZE, 368, Short.MAX_VALUE)
                            .addGroup(browseItemLayout.createSequentialGroup()
                                .addComponent(itemSearchItem, javax.swing.GroupLayout.PREFERRED_SIZE, 185, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(itemDeleteItem, javax.swing.GroupLayout.DEFAULT_SIZE, 177, Short.MAX_VALUE)))))
                .addContainerGap())
        );
        browseItemLayout.setVerticalGroup(
            browseItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(browseItemLayout.createSequentialGroup()
                .addGroup(browseItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(browseItemLayout.createSequentialGroup()
                        .addComponent(itemCreateItem, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(itemBorrowItem, javax.swing.GroupLayout.DEFAULT_SIZE, 69, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(browseItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(itemSearchItem, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(itemDeleteItem, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addComponent(itemSearchPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(itemBrowseScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 298, Short.MAX_VALUE)
                .addContainerGap())
        );

        browseItem.setBounds(25, 5, 800, 510);
        screensContainer.add(browseItem, javax.swing.JLayeredPane.DEFAULT_LAYER);

        browsePerson.setMinimumSize(new java.awt.Dimension(800, 510));
        browsePerson.setName("browsePerson"); // NOI18N
        browsePerson.setOpaque(false);
        browsePerson.setPreferredSize(new java.awt.Dimension(800, 510));

        personSearchPanel.setBackground(new java.awt.Color(255, 255, 255));
        personSearchPanel.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        personSearchPanel.setName("personSearchPanel"); // NOI18N

        personNameLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        personNameLabel.setText(resourceMap.getString("personNameLabel.text")); // NOI18N
        personNameLabel.setName("personNameLabel"); // NOI18N

        personTeamLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        personTeamLabel.setText(resourceMap.getString("personTeamLabel.text")); // NOI18N
        personTeamLabel.setName("personTeamLabel"); // NOI18N

        personContactNoLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        personContactNoLabel.setText(resourceMap.getString("personContactNoLabel.text")); // NOI18N
        personContactNoLabel.setName("personContactNoLabel"); // NOI18N

        personNameValue.setBackground(new java.awt.Color(255, 255, 245));
        personNameValue.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        personNameValue.setName("personNameValue"); // NOI18N

        personTeamValue.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "--Choose Team--" }));
        personTeamValue.setName("personTeamValue"); // NOI18N

        personContactNoValue.setBackground(new java.awt.Color(255, 255, 245));
        personContactNoValue.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        personContactNoValue.setName("personContactNoValue"); // NOI18N

        personValueNameLabel.setText(resourceMap.getString("personValueNameLabel.text")); // NOI18N
        personValueNameLabel.setName("personValueNameLabel"); // NOI18N

        personValueLabel.setText(resourceMap.getString("personValueLabel.text")); // NOI18N
        personValueLabel.setName("personValueLabel"); // NOI18N

        personNameInclude.setBackground(resourceMap.getColor("personNameInclude.background")); // NOI18N
        personNameInclude.setName("personNameInclude"); // NOI18N

        personTeamInclude.setBackground(resourceMap.getColor("personTeamInclude.background")); // NOI18N
        personTeamInclude.setName("personTeamInclude"); // NOI18N

        personContactNoInclude.setBackground(resourceMap.getColor("personContactNoInclude.background")); // NOI18N
        personContactNoInclude.setName("personContactNoInclude"); // NOI18N

        personIncludeLabel.setText(resourceMap.getString("personIncludeLabel.text")); // NOI18N
        personIncludeLabel.setName("personIncludeLabel"); // NOI18N

        javax.swing.GroupLayout personSearchPanelLayout = new javax.swing.GroupLayout(personSearchPanel);
        personSearchPanel.setLayout(personSearchPanelLayout);
        personSearchPanelLayout.setHorizontalGroup(
            personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(personSearchPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(personValueNameLabel, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(personTeamLabel, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(personNameLabel, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(personContactNoLabel, javax.swing.GroupLayout.Alignment.TRAILING))
                .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(personSearchPanelLayout.createSequentialGroup()
                        .addGap(28, 28, 28)
                        .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(personContactNoValue)
                            .addComponent(personTeamValue, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(personNameValue, javax.swing.GroupLayout.DEFAULT_SIZE, 229, Short.MAX_VALUE)))
                    .addGroup(personSearchPanelLayout.createSequentialGroup()
                        .addGap(121, 121, 121)
                        .addComponent(personValueLabel)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 26, Short.MAX_VALUE)
                .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(personSearchPanelLayout.createSequentialGroup()
                        .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(personNameInclude)
                            .addComponent(personContactNoInclude)
                            .addComponent(personTeamInclude))
                        .addGap(24, 24, 24))
                    .addGroup(personSearchPanelLayout.createSequentialGroup()
                        .addComponent(personIncludeLabel)
                        .addContainerGap())))
        );
        personSearchPanelLayout.setVerticalGroup(
            personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(personSearchPanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(personValueLabel)
                    .addComponent(personIncludeLabel)
                    .addComponent(personValueNameLabel))
                .addGap(18, 18, 18)
                .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(personNameValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(personNameLabel))
                    .addComponent(personNameInclude))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(personTeamInclude)
                    .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(personTeamValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(personTeamLabel)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(personContactNoInclude)
                    .addGroup(personSearchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(personContactNoValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(personContactNoLabel)))
                .addContainerGap(11, Short.MAX_VALUE))
        );

        personBrowseScrollPane.setBackground(new java.awt.Color(255, 255, 255));
        personBrowseScrollPane.setName("personBrowseScrollPane"); // NOI18N

        personBrowseTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Name", "Team", "Contact Number"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        personBrowseTable.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        personBrowseTable.setDropMode(javax.swing.DropMode.INSERT_ROWS);
        personBrowseTable.setName("personBrowseTable"); // NOI18N
        personBrowseTable.setRowHeight(22);
        personBrowseTable.getTableHeader().setResizingAllowed(false);
        personBrowseTable.getTableHeader().setReorderingAllowed(false);
        personBrowseTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                selectPerson(evt);
            }
        });
        personBrowseScrollPane.setViewportView(personBrowseTable);
        personBrowseTable.getColumnModel().getColumn(0).setResizable(false);
        personBrowseTable.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("personBrowseTable.columnModel.title0")); // NOI18N
        personBrowseTable.getColumnModel().getColumn(1).setResizable(false);
        personBrowseTable.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("personBrowseTable.columnModel.title1")); // NOI18N
        personBrowseTable.getColumnModel().getColumn(2).setResizable(false);
        personBrowseTable.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("personBrowseTable.columnModel.title2")); // NOI18N
        personBrowseTable.getTableHeader().addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent mouseEvent) {
                int index = personBrowseTable.convertColumnIndexToModel(personBrowseTable.columnAtPoint(mouseEvent.getPoint()));
                Gui.setPersonOrderAtPage(Gui.Page.BrowsePerson, index);
                Actions.person.doSearchPerson();
            }
        });

        personCreatePerson.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.person.gotoCreatePerson();
            }
        });
        personCreatePerson.setFont(new java.awt.Font("Tahoma", 1, 11));
        personCreatePerson.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/createPerson.png"))); // NOI18N
        personCreatePerson.setText(resourceMap.getString("personCreatePerson.text")); // NOI18N
        personCreatePerson.setIconTextGap(0);
        personCreatePerson.setName("personCreatePerson"); // NOI18N

        personSearchPerson.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.person.doSearchPerson();
            }
        });
        personSearchPerson.setFont(new java.awt.Font("Tahoma", 1, 11));
        personSearchPerson.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/searchPerson.png"))); // NOI18N
        personSearchPerson.setText(resourceMap.getString("personSearchPerson.text")); // NOI18N
        personSearchPerson.setIconTextGap(0);
        personSearchPerson.setName("personSearchPerson"); // NOI18N

        javax.swing.GroupLayout browsePersonLayout = new javax.swing.GroupLayout(browsePerson);
        browsePerson.setLayout(browsePersonLayout);
        browsePersonLayout.setHorizontalGroup(
            browsePersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(browsePersonLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(browsePersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(personBrowseScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 780, Short.MAX_VALUE)
                    .addGroup(browsePersonLayout.createSequentialGroup()
                        .addComponent(personSearchPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(browsePersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(personCreatePerson, javax.swing.GroupLayout.DEFAULT_SIZE, 366, Short.MAX_VALUE)
                            .addComponent(personSearchPerson, javax.swing.GroupLayout.DEFAULT_SIZE, 366, Short.MAX_VALUE))))
                .addContainerGap())
        );
        browsePersonLayout.setVerticalGroup(
            browsePersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(browsePersonLayout.createSequentialGroup()
                .addGroup(browsePersonLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, browsePersonLayout.createSequentialGroup()
                        .addComponent(personCreatePerson, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(personSearchPerson, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(personSearchPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(7, 7, 7)
                .addComponent(personBrowseScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 351, Short.MAX_VALUE)
                .addContainerGap())
        );

        browsePerson.setBounds(25, 5, 800, 510);
        screensContainer.add(browsePerson, javax.swing.JLayeredPane.DEFAULT_LAYER);

        browseTransaction.setMinimumSize(new java.awt.Dimension(800, 510));
        browseTransaction.setName("browseTransaction"); // NOI18N
        browseTransaction.setOpaque(false);
        browseTransaction.setPreferredSize(new java.awt.Dimension(800, 510));

        transactionSearchPane.setBackground(new java.awt.Color(255, 255, 255));
        transactionSearchPane.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        transactionSearchPane.setName("transactionSearchPane"); // NOI18N

        transactionNumberLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionNumberLabel.setText(resourceMap.getString("transactionNumberLabel.text")); // NOI18N
        transactionNumberLabel.setName("transactionNumberLabel"); // NOI18N

        transactionDateLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionDateLabel.setText(resourceMap.getString("transactionDateLabel.text")); // NOI18N
        transactionDateLabel.setName("transactionDateLabel"); // NOI18N

        transactionTypeLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionTypeLabel.setText(resourceMap.getString("transactionTypeLabel.text")); // NOI18N
        transactionTypeLabel.setName("transactionTypeLabel"); // NOI18N

        transactionPurposeLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionPurposeLabel.setText(resourceMap.getString("transactionPurposeLabel.text")); // NOI18N
        transactionPurposeLabel.setName("transactionPurposeLabel"); // NOI18N

        transactionNumberValue.setName("transactionNumberValue"); // NOI18N

        transactionTypeValue.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Borrow", "Return" }));
        transactionTypeValue.setName("transactionTypeValue"); // NOI18N

        transactionPurposeValue.setBackground(new java.awt.Color(255, 255, 240));
        transactionPurposeValue.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        transactionPurposeValue.setName("transactionPurposeValue"); // NOI18N

        transactionValueNameLabel.setText(resourceMap.getString("transactionValueNameLabel.text")); // NOI18N
        transactionValueNameLabel.setName("transactionValueNameLabel"); // NOI18N

        transactionValueLabel.setText(resourceMap.getString("transactionValueLabel.text")); // NOI18N
        transactionValueLabel.setName("transactionValueLabel"); // NOI18N

        transactionNumberInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionNumberInclude.setName("transactionNumberInclude"); // NOI18N

        transactionDateInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionDateInclude.setName("transactionDateInclude"); // NOI18N

        transactionTypeInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionTypeInclude.setName("transactionTypeInclude"); // NOI18N

        transactionPurposeInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionPurposeInclude.setName("transactionPurposeInclude"); // NOI18N

        transactionIncludeLabel.setText(resourceMap.getString("transactionIncludeLabel.text")); // NOI18N
        transactionIncludeLabel.setName("transactionIncludeLabel"); // NOI18N

        transactionDateMonthValue.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" }));
        transactionDateMonthValue.setName("transactionDateMonthValue"); // NOI18N

        transactionDateDayValue.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }));
        transactionDateDayValue.setName("transactionDateDayValue"); // NOI18N

        transactionDateYearValue.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }));
        transactionDateYearValue.setName("transactionDateYearValue"); // NOI18N

        javax.swing.GroupLayout transactionSearchPaneLayout = new javax.swing.GroupLayout(transactionSearchPane);
        transactionSearchPane.setLayout(transactionSearchPaneLayout);
        transactionSearchPaneLayout.setHorizontalGroup(
            transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(transactionSearchPaneLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(transactionTypeLabel)
                    .addGroup(transactionSearchPaneLayout.createSequentialGroup()
                        .addComponent(transactionValueNameLabel)
                        .addGap(4, 4, 4))
                    .addComponent(transactionPurposeLabel)
                    .addComponent(transactionNumberLabel)
                    .addComponent(transactionDateLabel))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, transactionSearchPaneLayout.createSequentialGroup()
                        .addComponent(transactionValueLabel)
                        .addGap(77, 77, 77))
                    .addGroup(transactionSearchPaneLayout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(transactionPurposeValue, javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(transactionTypeValue, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, transactionSearchPaneLayout.createSequentialGroup()
                                .addComponent(transactionDateMonthValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(transactionDateDayValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(transactionDateYearValue, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addComponent(transactionNumberValue, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 185, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(transactionSearchPaneLayout.createSequentialGroup()
                        .addGap(4, 4, 4)
                        .addComponent(transactionIncludeLabel))
                    .addGroup(transactionSearchPaneLayout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(transactionDateInclude)
                            .addComponent(transactionNumberInclude)
                            .addComponent(transactionTypeInclude)
                            .addComponent(transactionPurposeInclude))))
                .addContainerGap())
        );
        transactionSearchPaneLayout.setVerticalGroup(
            transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(transactionSearchPaneLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(transactionValueNameLabel)
                    .addComponent(transactionValueLabel)
                    .addComponent(transactionIncludeLabel))
                .addGap(18, 18, 18)
                .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(transactionNumberValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(transactionNumberLabel))
                    .addComponent(transactionNumberInclude))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(transactionDateMonthValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(transactionDateDayValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(transactionDateYearValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(transactionDateLabel)
                    .addComponent(transactionDateInclude))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addGroup(transactionSearchPaneLayout.createSequentialGroup()
                        .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(transactionTypeValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(transactionTypeLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(transactionSearchPaneLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(transactionPurposeValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(transactionPurposeLabel)))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, transactionSearchPaneLayout.createSequentialGroup()
                        .addComponent(transactionTypeInclude)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(transactionPurposeInclude)))
                .addContainerGap(11, Short.MAX_VALUE))
        );

        int yr = Calendar.getInstance().get(Calendar.YEAR);
        String[] years = new String[yr - 1900];
        for(int i = 0 ; i < years.length ; i++) {
            years[i] = "" + (yr - i);
        }

        transactionDateYearValue.setModel(new javax.swing.DefaultComboBoxModel(years));

        transactionScrollPane.setName("transactionScrollPane"); // NOI18N

        transactionTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Transaction No.", "Person", "Item Count", "Date", "Type"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        transactionTable.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        transactionTable.setDropMode(javax.swing.DropMode.INSERT_ROWS);
        transactionTable.setName("transactionTable"); // NOI18N
        transactionTable.setRowHeight(22);
        transactionTable.getTableHeader().setResizingAllowed(false);
        transactionTable.getTableHeader().setReorderingAllowed(false);
        transactionTable.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                selectTransaction(evt);
            }
        });
        transactionScrollPane.setViewportView(transactionTable);
        transactionTable.getColumnModel().getColumn(0).setResizable(false);
        transactionTable.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("transactionTable.columnModel.title0")); // NOI18N
        transactionTable.getColumnModel().getColumn(1).setResizable(false);
        transactionTable.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("transactionTable.columnModel.title1")); // NOI18N
        transactionTable.getColumnModel().getColumn(2).setResizable(false);
        transactionTable.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("transactionTable.columnModel.title2")); // NOI18N
        transactionTable.getColumnModel().getColumn(3).setResizable(false);
        transactionTable.getColumnModel().getColumn(3).setHeaderValue(resourceMap.getString("transactionTable.columnModel.title3")); // NOI18N
        transactionTable.getColumnModel().getColumn(4).setResizable(false);
        transactionTable.getColumnModel().getColumn(4).setHeaderValue(resourceMap.getString("transactionTable.columnModel.title4")); // NOI18N
        transactionTable.getTableHeader().addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent mouseEvent) {
                int index = transactionTable.convertColumnIndexToModel(transactionTable.columnAtPoint(mouseEvent.getPoint()));
                Gui.setTransactionOrderAtPage(Gui.Page.BrowseTransaction, index);
                Actions.transaction.doSearchTransactions();
            }
        });

        transactionItemPersonSearchPane.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        transactionItemPersonSearchPane.setName("transactionItemPersonSearchPane"); // NOI18N

        transactionItemPersonTransactionSearch.setBackground(new java.awt.Color(255, 255, 255));
        transactionItemPersonTransactionSearch.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        transactionItemPersonTransactionSearch.setName("transactionItemPersonTransactionSearch"); // NOI18N

        transactionItemNumberLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionItemNumberLabel.setText(resourceMap.getString("transactionItemNumberLabel.text")); // NOI18N
        transactionItemNumberLabel.setName("transactionItemNumberLabel"); // NOI18N

        transactionItemNameLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionItemNameLabel.setText(resourceMap.getString("transactionItemNameLabel.text")); // NOI18N
        transactionItemNameLabel.setName("transactionItemNameLabel"); // NOI18N

        transactionItemTypeLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionItemTypeLabel.setText(resourceMap.getString("transactionItemTypeLabel.text")); // NOI18N
        transactionItemTypeLabel.setName("transactionItemTypeLabel"); // NOI18N

        transactionItemDescriptionLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionItemDescriptionLabel.setText(resourceMap.getString("transactionItemDescriptionLabel.text")); // NOI18N
        transactionItemDescriptionLabel.setName("transactionItemDescriptionLabel"); // NOI18N

        transactionItemAvailabilityLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionItemAvailabilityLabel.setText(resourceMap.getString("transactionItemAvailabilityLabel.text")); // NOI18N
        transactionItemAvailabilityLabel.setName("transactionItemAvailabilityLabel"); // NOI18N

        transactionItemNumberValue.setName("transactionItemNumberValue"); // NOI18N

        transactionItemNameValue.setBackground(new java.awt.Color(255, 255, 240));
        transactionItemNameValue.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        transactionItemNameValue.setName("transactionItemNameValue"); // NOI18N

        transactionItemTypeValue.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "--Choose Item Type--" }));
        transactionItemTypeValue.setName("transactionItemTypeValue"); // NOI18N

        transactionItemDescriptionValue.setBackground(new java.awt.Color(255, 255, 240));
        transactionItemDescriptionValue.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        transactionItemDescriptionValue.setName("transactionItemDescriptionValue"); // NOI18N

        transactionItemAvailabilityValue.setBackground(new java.awt.Color(255, 255, 255));
        transactionItemAvailabilityValue.setName("transactionItemAvailabilityValue"); // NOI18N

        transactionItemValueNameLabel.setText(resourceMap.getString("transactionItemValueNameLabel.text")); // NOI18N
        transactionItemValueNameLabel.setName("transactionItemValueNameLabel"); // NOI18N

        transactionItemValueLabel.setText(resourceMap.getString("transactionItemValueLabel.text")); // NOI18N
        transactionItemValueLabel.setName("transactionItemValueLabel"); // NOI18N

        transactionItemNumberInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionItemNumberInclude.setName("transactionItemNumberInclude"); // NOI18N

        transactionItemNameInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionItemNameInclude.setName("transactionItemNameInclude"); // NOI18N

        transactionItemTypeInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionItemTypeInclude.setName("transactionItemTypeInclude"); // NOI18N

        transactionItemDescriptionInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionItemDescriptionInclude.setName("transactionItemDescriptionInclude"); // NOI18N

        transactionItemAvailabilityInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionItemAvailabilityInclude.setName("transactionItemAvailabilityInclude"); // NOI18N

        transactionItemIncludeLabel.setText(resourceMap.getString("transactionItemIncludeLabel.text")); // NOI18N
        transactionItemIncludeLabel.setName("transactionItemIncludeLabel"); // NOI18N

        transactionPersonContactNumberLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionPersonContactNumberLabel.setText(resourceMap.getString("transactionPersonContactNumberLabel.text")); // NOI18N
        transactionPersonContactNumberLabel.setName("transactionPersonContactNumberLabel"); // NOI18N

        transactionPersonContactNumberValue.setBackground(new java.awt.Color(255, 255, 240));
        transactionPersonContactNumberValue.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        transactionPersonContactNumberValue.setName("transactionPersonContactNumberValue"); // NOI18N

        transactionPersonNameValue.setBackground(new java.awt.Color(255, 255, 240));
        transactionPersonNameValue.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        transactionPersonNameValue.setName("transactionPersonNameValue"); // NOI18N

        transactionPersonTeamValue.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "--Choose Team--" }));
        transactionPersonTeamValue.setName("transactionPersonTeamValue"); // NOI18N

        transactionPersonNameInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionPersonNameInclude.setName("transactionPersonNameInclude"); // NOI18N

        transactionPersonTeamInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionPersonTeamInclude.setName("transactionPersonTeamInclude"); // NOI18N

        transactionPersonNameLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionPersonNameLabel.setText(resourceMap.getString("transactionPersonNameLabel.text")); // NOI18N
        transactionPersonNameLabel.setName("transactionPersonNameLabel"); // NOI18N

        transactionPersonContactNumberInclude.setBackground(new java.awt.Color(255, 255, 255));
        transactionPersonContactNumberInclude.setName("transactionPersonContactNumberInclude"); // NOI18N

        transactionPersonTeamLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        transactionPersonTeamLabel.setText(resourceMap.getString("transactionPersonTeamLabel.text")); // NOI18N
        transactionPersonTeamLabel.setName("transactionPersonTeamLabel"); // NOI18N

        javax.swing.GroupLayout transactionItemPersonTransactionSearchLayout = new javax.swing.GroupLayout(transactionItemPersonTransactionSearch);
        transactionItemPersonTransactionSearch.setLayout(transactionItemPersonTransactionSearchLayout);
        transactionItemPersonTransactionSearchLayout.setHorizontalGroup(
            transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(transactionItemPersonTransactionSearchLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(transactionItemAvailabilityLabel)
                    .addComponent(transactionItemValueNameLabel)
                    .addComponent(transactionItemNumberLabel)
                    .addComponent(transactionItemNameLabel)
                    .addComponent(transactionItemTypeLabel)
                    .addComponent(transactionItemDescriptionLabel)
                    .addComponent(transactionPersonNameLabel)
                    .addComponent(transactionPersonTeamLabel)
                    .addComponent(transactionPersonContactNumberLabel))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(transactionItemPersonTransactionSearchLayout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(transactionPersonTeamValue, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(transactionPersonNameValue, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 214, Short.MAX_VALUE)
                                    .addComponent(transactionPersonContactNumberValue, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 215, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addComponent(transactionItemAvailabilityValue, javax.swing.GroupLayout.DEFAULT_SIZE, 236, Short.MAX_VALUE))
                            .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addComponent(transactionItemDescriptionValue, javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(transactionItemTypeValue, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(transactionItemNameValue, javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(transactionItemNumberValue, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 213, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(8, 8, 8)
                        .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(transactionItemIncludeLabel)
                            .addComponent(transactionItemNumberInclude)
                            .addComponent(transactionItemAvailabilityInclude)
                            .addComponent(transactionPersonContactNumberInclude)
                            .addComponent(transactionPersonTeamInclude)
                            .addComponent(transactionPersonNameInclude)
                            .addComponent(transactionItemDescriptionInclude)
                            .addComponent(transactionItemTypeInclude)
                            .addComponent(transactionItemNameInclude)))
                    .addGroup(transactionItemPersonTransactionSearchLayout.createSequentialGroup()
                        .addGap(114, 114, 114)
                        .addComponent(transactionItemValueLabel)
                        .addGap(109, 109, 109)))
                .addContainerGap())
        );
        transactionItemPersonTransactionSearchLayout.setVerticalGroup(
            transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, transactionItemPersonTransactionSearchLayout.createSequentialGroup()
                .addGap(15, 15, 15)
                .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(transactionItemValueNameLabel)
                    .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(transactionItemValueLabel)
                        .addComponent(transactionItemIncludeLabel)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(transactionItemPersonTransactionSearchLayout.createSequentialGroup()
                        .addComponent(transactionItemNumberInclude)
                        .addGap(5, 5, 5)
                        .addComponent(transactionItemNameInclude)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 22, Short.MAX_VALUE)
                        .addComponent(transactionItemTypeInclude)
                        .addGap(6, 6, 6)
                        .addComponent(transactionItemDescriptionInclude)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(transactionItemAvailabilityInclude)
                        .addGap(13, 13, 13)
                        .addComponent(transactionPersonNameInclude)
                        .addGap(6, 6, 6)
                        .addComponent(transactionPersonTeamInclude)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(transactionPersonContactNumberInclude))
                    .addGroup(transactionItemPersonTransactionSearchLayout.createSequentialGroup()
                        .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(transactionItemNumberValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(transactionItemNumberLabel))
                        .addGap(5, 5, 5)
                        .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(transactionItemNameValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(transactionItemNameLabel))
                        .addGap(6, 6, 6)
                        .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(transactionItemTypeValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(transactionItemTypeLabel))
                        .addGap(6, 6, 6)
                        .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(transactionItemDescriptionValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(transactionItemDescriptionLabel))
                        .addGap(13, 13, 13)
                        .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(transactionItemPersonTransactionSearchLayout.createSequentialGroup()
                                .addComponent(transactionItemAvailabilityValue)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(transactionPersonNameValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(transactionPersonNameLabel))
                                .addGap(6, 6, 6)
                                .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(transactionPersonTeamValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(transactionPersonTeamLabel))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(transactionItemPersonTransactionSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(transactionPersonContactNumberValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(transactionPersonContactNumberLabel)))
                            .addComponent(transactionItemAvailabilityLabel))))
                .addContainerGap())
        );

        transactionItemPersonSearchPane.setViewportView(transactionItemPersonTransactionSearch);

        transactionSearchTransaction.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.transaction.doSearchTransactions();
            }
        });
        transactionSearchTransaction.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        transactionSearchTransaction.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/searchTransaction.png"))); // NOI18N
        transactionSearchTransaction.setText(resourceMap.getString("transactionSearchTransaction.text")); // NOI18N
        transactionSearchTransaction.setIconTextGap(10);
        transactionSearchTransaction.setName("transactionSearchTransaction"); // NOI18N

        javax.swing.GroupLayout browseTransactionLayout = new javax.swing.GroupLayout(browseTransaction);
        browseTransaction.setLayout(browseTransactionLayout);
        browseTransactionLayout.setHorizontalGroup(
            browseTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, browseTransactionLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(browseTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(transactionScrollPane, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 780, Short.MAX_VALUE)
                    .addGroup(browseTransactionLayout.createSequentialGroup()
                        .addGroup(browseTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(transactionSearchTransaction, javax.swing.GroupLayout.DEFAULT_SIZE, 351, Short.MAX_VALUE)
                            .addComponent(transactionSearchPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(transactionItemPersonSearchPane, javax.swing.GroupLayout.DEFAULT_SIZE, 423, Short.MAX_VALUE)))
                .addContainerGap())
        );
        browseTransactionLayout.setVerticalGroup(
            browseTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(browseTransactionLayout.createSequentialGroup()
                .addGroup(browseTransactionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(browseTransactionLayout.createSequentialGroup()
                        .addComponent(transactionSearchPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(transactionSearchTransaction, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(transactionItemPersonSearchPane, javax.swing.GroupLayout.DEFAULT_SIZE, 226, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(transactionScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 267, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(20, 20, 20))
        );

        browseTransaction.setBounds(25, 5, 800, 510);
        screensContainer.add(browseTransaction, javax.swing.JLayeredPane.DEFAULT_LAYER);

        borrowItem.setName("borrowItem"); // NOI18N
        borrowItem.setOpaque(false);

        borrowItemItemsPane.setEnabled(false);
        borrowItemItemsPane.setName("borrowItemItemsPane"); // NOI18N

        borrowItemItemsValue.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Item No.", "Name", "Type", "Description", "In Possession Of"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        borrowItemItemsValue.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        borrowItemItemsValue.setDropMode(javax.swing.DropMode.INSERT_ROWS);
        borrowItemItemsValue.setName("borrowItemItemsValue"); // NOI18N
        borrowItemItemsValue.setRowHeight(22);
        borrowItemItemsValue.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        borrowItemItemsValue.getTableHeader().setResizingAllowed(false);
        borrowItemItemsValue.getTableHeader().setReorderingAllowed(false);
        borrowItemItemsPane.setViewportView(borrowItemItemsValue);
        borrowItemItemsValue.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("itemBrowseTable.columnModel.title0")); // NOI18N
        borrowItemItemsValue.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("itemBrowseTable.columnModel.title1")); // NOI18N
        borrowItemItemsValue.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("itemBrowseTable.columnModel.title2")); // NOI18N
        borrowItemItemsValue.getColumnModel().getColumn(3).setHeaderValue(resourceMap.getString("itemBrowseTable.columnModel.title3")); // NOI18N
        borrowItemItemsValue.getColumnModel().getColumn(4).setHeaderValue(resourceMap.getString("itemBrowseTable.columnModel.title4")); // NOI18N
        borrowItemItemsValue.getTableHeader().addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent mouseEvent) {
                int index = borrowItemItemsValue.convertColumnIndexToModel(borrowItemItemsValue.columnAtPoint(mouseEvent.getPoint()));
                Gui.setItemOrderAtPage(Gui.Page.BorrowItem, index);
                Actions.item.doSearchItem();
            }
        });

        borrowItemPersonPane.setName("borrowItemPersonPane"); // NOI18N

        borrowItemPersonValue.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Name", "Team", "Contact Number"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        borrowItemPersonValue.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        borrowItemPersonValue.setDropMode(javax.swing.DropMode.INSERT_ROWS);
        borrowItemPersonValue.setName("borrowItemPersonValue"); // NOI18N
        borrowItemPersonValue.setRowHeight(22);
        borrowItemPersonValue.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        borrowItemPersonValue.getTableHeader().setResizingAllowed(false);
        borrowItemPersonValue.getTableHeader().setReorderingAllowed(false);
        borrowItemPersonPane.setViewportView(borrowItemPersonValue);
        borrowItemPersonValue.getColumnModel().getColumn(0).setHeaderValue(resourceMap.getString("personBrowseTable.columnModel.title0")); // NOI18N
        borrowItemPersonValue.getColumnModel().getColumn(1).setHeaderValue(resourceMap.getString("personBrowseTable.columnModel.title1")); // NOI18N
        borrowItemPersonValue.getColumnModel().getColumn(2).setHeaderValue(resourceMap.getString("personBrowseTable.columnModel.title2")); // NOI18N
        borrowItemPersonValue.getTableHeader().addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent mouseEvent) {
                int index = borrowItemPersonValue.convertColumnIndexToModel(borrowItemPersonValue.columnAtPoint(mouseEvent.getPoint()));
                Gui.setPersonOrderAtPage(Gui.Page.BorrowItem, index);
                Actions.person.doSearchPerson();
            }
        });

        borrowItemPurposePane.setName("borrowItemPurposePane"); // NOI18N

        borrowItemPurposeValue.setColumns(20);
        borrowItemPurposeValue.setRows(5);
        borrowItemPurposeValue.setName("borrowItemPurposeValue"); // NOI18N
        borrowItemPurposePane.setViewportView(borrowItemPurposeValue);

        borrowItemPersonSearch.setBackground(new java.awt.Color(255, 255, 255));
        borrowItemPersonSearch.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        borrowItemPersonSearch.setName("borrowItemPersonSearch"); // NOI18N

        borrowItemPersonNameLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        borrowItemPersonNameLabel.setText(resourceMap.getString("borrowItemPersonNameLabel.text")); // NOI18N
        borrowItemPersonNameLabel.setName("borrowItemPersonNameLabel"); // NOI18N

        borrowItemTeamNameLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        borrowItemTeamNameLabel.setText(resourceMap.getString("borrowItemTeamNameLabel.text")); // NOI18N
        borrowItemTeamNameLabel.setName("borrowItemTeamNameLabel"); // NOI18N

        borrowItemContactNoLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        borrowItemContactNoLabel.setText(resourceMap.getString("borrowItemContactNoLabel.text")); // NOI18N
        borrowItemContactNoLabel.setName("borrowItemContactNoLabel"); // NOI18N

        borrowItemPersonNameValue.setBackground(new java.awt.Color(255, 255, 240));
        borrowItemPersonNameValue.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        borrowItemPersonNameValue.setName("borrowItemPersonNameValue"); // NOI18N

        borrowItemPersonTeamValue.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "--Choose Team--" }));
        borrowItemPersonTeamValue.setName("borrowItemPersonTeamValue"); // NOI18N

        borrowItemPersonContactNoValue.setBackground(new java.awt.Color(255, 255, 240));
        borrowItemPersonContactNoValue.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        borrowItemPersonContactNoValue.setName("borrowItemPersonContactNoValue"); // NOI18N

        borrowItemPersonValueNameLabel.setText(resourceMap.getString("borrowItemPersonValueNameLabel.text")); // NOI18N
        borrowItemPersonValueNameLabel.setName("borrowItemPersonValueNameLabel"); // NOI18N

        borrowItemPersonValueLabel.setText(resourceMap.getString("borrowItemPersonValueLabel.text")); // NOI18N
        borrowItemPersonValueLabel.setName("borrowItemPersonValueLabel"); // NOI18N

        borrowItemPersonNameInclude.setBackground(new java.awt.Color(255, 255, 255));
        borrowItemPersonNameInclude.setName("borrowItemPersonNameInclude"); // NOI18N

        borrowItemPersonTeamInclude.setBackground(new java.awt.Color(255, 255, 255));
        borrowItemPersonTeamInclude.setName("borrowItemPersonTeamInclude"); // NOI18N

        borrowItemPersonContactNoInclude.setBackground(new java.awt.Color(255, 255, 255));
        borrowItemPersonContactNoInclude.setName("borrowItemPersonContactNoInclude"); // NOI18N

        borrowItemPersonIncludeLabel.setText(resourceMap.getString("borrowItemPersonIncludeLabel.text")); // NOI18N
        borrowItemPersonIncludeLabel.setName("borrowItemPersonIncludeLabel"); // NOI18N

        borrowItemSearchPersonButton.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.person.doSearchPerson();
            }
        });
        borrowItemSearchPersonButton.setFont(new java.awt.Font("Tahoma", 1, 11));
        borrowItemSearchPersonButton.setText(resourceMap.getString("borrowItemSearchPersonButton.text")); // NOI18N
        borrowItemSearchPersonButton.setName("borrowItemSearchPersonButton"); // NOI18N

        javax.swing.GroupLayout borrowItemPersonSearchLayout = new javax.swing.GroupLayout(borrowItemPersonSearch);
        borrowItemPersonSearch.setLayout(borrowItemPersonSearchLayout);
        borrowItemPersonSearchLayout.setHorizontalGroup(
            borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(borrowItemPersonSearchLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(borrowItemPersonSearchLayout.createSequentialGroup()
                        .addComponent(borrowItemPersonValueNameLabel)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 128, Short.MAX_VALUE)
                        .addComponent(borrowItemPersonValueLabel)
                        .addGap(204, 204, 204))
                    .addGroup(borrowItemPersonSearchLayout.createSequentialGroup()
                        .addGroup(borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(borrowItemSearchPersonButton, javax.swing.GroupLayout.DEFAULT_SIZE, 404, Short.MAX_VALUE)
                            .addGroup(borrowItemPersonSearchLayout.createSequentialGroup()
                                .addGroup(borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(borrowItemTeamNameLabel)
                                    .addComponent(borrowItemPersonNameLabel)
                                    .addComponent(borrowItemContactNoLabel))
                                .addGap(28, 28, 28)
                                .addGroup(borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(borrowItemPersonNameValue, javax.swing.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE)
                                    .addComponent(borrowItemPersonContactNoValue, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 228, Short.MAX_VALUE)
                                    .addComponent(borrowItemPersonTeamValue, javax.swing.GroupLayout.Alignment.LEADING, 0, 228, Short.MAX_VALUE))
                                .addGap(32, 32, 32)
                                .addGroup(borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(borrowItemPersonNameInclude)
                                    .addComponent(borrowItemPersonContactNoInclude)
                                    .addComponent(borrowItemPersonTeamInclude)
                                    .addComponent(borrowItemPersonIncludeLabel))
                                .addGap(17, 17, 17)))
                        .addContainerGap())))
        );
        borrowItemPersonSearchLayout.setVerticalGroup(
            borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(borrowItemPersonSearchLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(borrowItemPersonValueNameLabel)
                    .addComponent(borrowItemPersonValueLabel)
                    .addComponent(borrowItemPersonIncludeLabel))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(borrowItemPersonNameValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(borrowItemPersonNameLabel))
                    .addComponent(borrowItemPersonNameInclude))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(borrowItemPersonSearchLayout.createSequentialGroup()
                        .addGroup(borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(borrowItemPersonTeamValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(borrowItemTeamNameLabel))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(borrowItemPersonSearchLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(borrowItemPersonContactNoValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(borrowItemContactNoLabel)))
                    .addGroup(borrowItemPersonSearchLayout.createSequentialGroup()
                        .addComponent(borrowItemPersonTeamInclude)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(borrowItemPersonContactNoInclude)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(borrowItemSearchPersonButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGap(11, 11, 11))
        );

        borrowItemPurposeLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        borrowItemPurposeLabel.setText(resourceMap.getString("borrowItemPurposeLabel.text")); // NOI18N
        borrowItemPurposeLabel.setName("borrowItemPurposeLabel"); // NOI18N

        borrowItemBorrowLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        borrowItemBorrowLabel.setText(resourceMap.getString("borrowItemBorrowLabel.text")); // NOI18N
        borrowItemBorrowLabel.setName("borrowItemBorrowLabel"); // NOI18N

        borrowItemItemsLabel.setFont(new java.awt.Font("Tahoma", 1, 11));
        borrowItemItemsLabel.setText(resourceMap.getString("borrowItemItemsLabel.text")); // NOI18N
        borrowItemItemsLabel.setName("borrowItemItemsLabel"); // NOI18N

        borrowItemBorrowButton.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.doBorrowItems();
            }
        });
        borrowItemBorrowButton.setFont(new java.awt.Font("Tahoma", 1, 11));
        borrowItemBorrowButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/borrowItem.png"))); // NOI18N
        borrowItemBorrowButton.setText(resourceMap.getString("borrowItemBorrowButton.text")); // NOI18N
        borrowItemBorrowButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        borrowItemBorrowButton.setName("borrowItemBorrowButton"); // NOI18N
        borrowItemBorrowButton.setVerifyInputWhenFocusTarget(false);
        borrowItemBorrowButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);

        javax.swing.GroupLayout borrowItemLayout = new javax.swing.GroupLayout(borrowItem);
        borrowItem.setLayout(borrowItemLayout);
        borrowItemLayout.setHorizontalGroup(
            borrowItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(borrowItemLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(borrowItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(borrowItemBorrowLabel)
                    .addComponent(borrowItemItemsLabel)
                    .addComponent(borrowItemItemsPane, javax.swing.GroupLayout.PREFERRED_SIZE, 779, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(borrowItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                        .addComponent(borrowItemPersonPane, javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.LEADING, borrowItemLayout.createSequentialGroup()
                            .addComponent(borrowItemPersonSearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addGroup(borrowItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(borrowItemLayout.createSequentialGroup()
                                    .addComponent(borrowItemPurposePane, javax.swing.GroupLayout.PREFERRED_SIZE, 218, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(borrowItemBorrowButton))
                                .addComponent(borrowItemPurposeLabel)))))
                .addContainerGap())
        );
        borrowItemLayout.setVerticalGroup(
            borrowItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(borrowItemLayout.createSequentialGroup()
                .addGroup(borrowItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(borrowItemPersonSearch, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(borrowItemLayout.createSequentialGroup()
                        .addComponent(borrowItemPurposeLabel)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(borrowItemLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(borrowItemBorrowButton, javax.swing.GroupLayout.DEFAULT_SIZE, 137, Short.MAX_VALUE)
                            .addComponent(borrowItemPurposePane, javax.swing.GroupLayout.DEFAULT_SIZE, 137, Short.MAX_VALUE))))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(borrowItemBorrowLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(borrowItemPersonPane, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(borrowItemItemsLabel)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(borrowItemItemsPane, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(19, 19, 19))
        );

        borrowItem.setBounds(25, 5, 790, 510);
        screensContainer.add(borrowItem, javax.swing.JLayeredPane.DEFAULT_LAYER);

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/BG.png"))); // NOI18N
        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        toolBar.setBackground(new java.awt.Color(250, 250, 250));
        toolBar.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        toolBar.setFloatable(false);
        toolBar.setRollover(true);
        toolBar.setName("toolBar"); // NOI18N

        home.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                goToPage(Page.Home);
            }
        });
        home.setBackground(new java.awt.Color(250, 250, 250));
        home.setFont(new java.awt.Font("Tahoma", 0, 10));
        home.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/home.png"))); // NOI18N
        home.setText(resourceMap.getString("home.text")); // NOI18N
        home.setFocusable(false);
        home.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        home.setIconTextGap(0);
        home.setName("home"); // NOI18N
        home.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        home.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                homeActionPerformed(evt);
            }
        });
        toolBar.add(home);

        toolSeparator1.setName("toolSeparator1"); // NOI18N
        toolBar.add(toolSeparator1);

        itemTool.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.gotoBrowseItem();
            }
        });
        itemTool.setBackground(new java.awt.Color(250, 250, 250));
        itemTool.setFont(new java.awt.Font("Tahoma", 0, 10));
        itemTool.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/item.png"))); // NOI18N
        itemTool.setText(resourceMap.getString("itemTool.text")); // NOI18N
        itemTool.setFocusable(false);
        itemTool.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        itemTool.setIconTextGap(0);
        itemTool.setMaximumSize(new java.awt.Dimension(50, 51));
        itemTool.setMinimumSize(new java.awt.Dimension(50, 51));
        itemTool.setName("itemTool"); // NOI18N
        itemTool.setPreferredSize(new java.awt.Dimension(50, 51));
        itemTool.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        toolBar.add(itemTool);

        personTool.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.person.gotoBrowsePerson();
            }
        });
        personTool.setBackground(new java.awt.Color(250, 250, 250));
        personTool.setFont(new java.awt.Font("Tahoma", 0, 10));
        personTool.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/person.png"))); // NOI18N
        personTool.setText(resourceMap.getString("personTool.text")); // NOI18N
        personTool.setFocusable(false);
        personTool.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        personTool.setIconTextGap(0);
        personTool.setMaximumSize(new java.awt.Dimension(50, 51));
        personTool.setMinimumSize(new java.awt.Dimension(50, 51));
        personTool.setName("personTool"); // NOI18N
        personTool.setPreferredSize(new java.awt.Dimension(50, 51));
        personTool.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        toolBar.add(personTool);

        transactionTool.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.transaction.gotoBrowseTransaction();
            }
        });
        transactionTool.setBackground(new java.awt.Color(250, 250, 250));
        transactionTool.setFont(new java.awt.Font("Tahoma", 0, 10));
        transactionTool.setIcon(new javax.swing.ImageIcon(getClass().getResource("/nxtgeninventorysystem/View/resources/transaction.png"))); // NOI18N
        transactionTool.setText(resourceMap.getString("transactionTool.text")); // NOI18N
        transactionTool.setFocusable(false);
        transactionTool.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        transactionTool.setIconTextGap(0);
        transactionTool.setName("transactionTool"); // NOI18N
        transactionTool.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        toolBar.add(transactionTool);

        javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
        mainPanel.setLayout(mainPanelLayout);
        mainPanelLayout.setHorizontalGroup(
            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mainPanelLayout.createSequentialGroup()
                .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(toolBar, javax.swing.GroupLayout.DEFAULT_SIZE, 860, Short.MAX_VALUE)
                    .addComponent(screensContainer, javax.swing.GroupLayout.PREFERRED_SIZE, 850, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
            .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(mainPanelLayout.createSequentialGroup()
                    .addComponent(jLabel1)
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );
        mainPanelLayout.setVerticalGroup(
            mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(mainPanelLayout.createSequentialGroup()
                .addComponent(toolBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(screensContainer, javax.swing.GroupLayout.PREFERRED_SIZE, 577, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(mainPanelLayout.createSequentialGroup()
                    .addGap(55, 55, 55)
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 570, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
        );

        menuBar.setName("menuBar"); // NOI18N

        fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
        fileMenu.setName("fileMenu"); // NOI18N

        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(nxtgeninventorysystem.Driver.class).getContext().getActionMap(Gui.class, this);
        exitMenuItem.setAction(actionMap.get("quit")); // NOI18N
        exitMenuItem.setName("exitMenuItem"); // NOI18N
        fileMenu.add(exitMenuItem);

        menuBar.add(fileMenu);

        manageMenu.setText(resourceMap.getString("manageMenu.text")); // NOI18N
        manageMenu.setName("manageMenu"); // NOI18N

        itemSubMenu.setText(resourceMap.getString("itemSubMenu.text")); // NOI18N

        itemBrowse.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.gotoBrowseItem();
            }
        });
        itemBrowse.setText(resourceMap.getString("itemBrowse.text")); // NOI18N
        itemBrowse.setName("itemBrowse"); // NOI18N
        itemSubMenu.add(itemBrowse);

        itemMenuSeparator.setName("itemMenuSeparator"); // NOI18N
        itemSubMenu.add(itemMenuSeparator);

        itemAdd.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.gotoCreateItem();
            }
        });
        itemAdd.setText(resourceMap.getString("itemAdd.text")); // NOI18N
        itemAdd.setName("itemAdd"); // NOI18N
        itemSubMenu.add(itemAdd);

        itemMenuSeparator2.setName("itemMenuSeparator2"); // NOI18N
        itemSubMenu.add(itemMenuSeparator2);

        itemTypeAdd.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.gotoCreateItemType();
            }
        });
        itemTypeAdd.setText(resourceMap.getString("itemTypeAdd.text")); // NOI18N
        itemTypeAdd.setName("itemTypeAdd"); // NOI18N
        itemSubMenu.add(itemTypeAdd);

        itemTypeEdit.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.item.gotoUpdateItemType();
            }
        });
        itemTypeEdit.setText(resourceMap.getString("itemTypeEdit.text")); // NOI18N
        itemSubMenu.add(itemTypeEdit);

        manageMenu.add(itemSubMenu);

        personSubMenu.setText(resourceMap.getString("personSubMenu.text")); // NOI18N

        personBrowse.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.person.gotoBrowsePerson();
            }
        });
        personBrowse.setText(resourceMap.getString("personBrowse.text")); // NOI18N
        personSubMenu.add(personBrowse);

        personMenuSeparator.setName("personMenuSeparator"); // NOI18N
        personSubMenu.add(personMenuSeparator);

        personAdd.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.person.gotoCreatePerson();
            }
        });
        personAdd.setText(resourceMap.getString("personAdd.text")); // NOI18N
        personAdd.setName("personAdd"); // NOI18N
        personSubMenu.add(personAdd);

        personMenuSeparator2.setName("personMenuSeparator2"); // NOI18N
        personSubMenu.add(personMenuSeparator2);

        personTeamAdd.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.person.gotoCreateTeam();
            }
        });
        personTeamAdd.setText(resourceMap.getString("personTeamAdd.text")); // NOI18N
        personTeamAdd.setName("personTeamAdd"); // NOI18N
        personSubMenu.add(personTeamAdd);

        personTeamEdit.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.person.gotoUpdateTeam();
            }
        });
        personTeamEdit.setText(resourceMap.getString("personTeamEdit.text")); // NOI18N
        personTeamEdit.setName("personTeamEdit"); // NOI18N
        personSubMenu.add(personTeamEdit);

        manageMenu.add(personSubMenu);

        transactionSubMenu.setText(resourceMap.getString("transactionSubMenu.text")); // NOI18N

        transactionBrowse.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                Actions.transaction.gotoBrowseTransaction();
            }
        });
        transactionBrowse.setText(resourceMap.getString("transactionBrowse.text")); // NOI18N
        transactionSubMenu.add(transactionBrowse);

        manageMenu.add(transactionSubMenu);

        menuBar.add(manageMenu);

        toolsMenu.setText(resourceMap.getString("toolsMenu.text")); // NOI18N
        toolsMenu.setName("toolsMenu"); // NOI18N

        dbToolsDatabaseConn.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                showDialog(Dialog.DatabaseConfiguration);
            }
        });
        dbToolsDatabaseConn.setText(resourceMap.getString("dbToolsDatabaseConn.text")); // NOI18N
        dbToolsDatabaseConn.setName("dbToolsDatabaseConn"); // NOI18N
        toolsMenu.add(dbToolsDatabaseConn);

        dbToolsErrorConsole.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                showDialog(Dialog.ErrorConsole);
            }
        });
        dbToolsErrorConsole.setText(resourceMap.getString("dbToolsErrorConsole.text")); // NOI18N
        dbToolsErrorConsole.setName("dbToolsErrorConsole"); // NOI18N
        toolsMenu.add(dbToolsErrorConsole);

        menuBar.add(toolsMenu);

        helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N

        sysInfoMenuItem.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                showDialog(Dialog.AboutSystem);
            }
        });
        sysInfoMenuItem.setText(resourceMap.getString("sysInfoMenuItem.text")); // NOI18N
        sysInfoMenuItem.setName("sysInfoMenuItem"); // NOI18N
        helpMenu.add(sysInfoMenuItem);

        devInfoMenuItem.setAction(new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                showDialog(Dialog.AboutDeveloper);
            }
        });
        devInfoMenuItem.setText(resourceMap.getString("devInfoMenuItem.text")); // NOI18N
        devInfoMenuItem.setName("devInfoMenuItem"); // NOI18N
        helpMenu.add(devInfoMenuItem);

        menuBar.add(helpMenu);

        statusPanel.setBackground(new java.awt.Color(250, 250, 250));
        statusPanel.setName("statusPanel"); // NOI18N
        statusPanel.setPreferredSize(new java.awt.Dimension(850, 25));

        statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N

        statusMessageLabel.setText(resourceMap.getString("statusMessageLabel.text")); // NOI18N
        statusMessageLabel.setName("statusMessageLabel"); // NOI18N

        statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N

        progressBar.setName("progressBar"); // NOI18N

        javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
        statusPanel.setLayout(statusPanelLayout);
        statusPanelLayout.setHorizontalGroup(
            statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, statusPanelLayout.createSequentialGroup()
                .addGap(10, 10, 10)
                .addComponent(statusMessageLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 209, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 457, Short.MAX_VALUE)
                .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(statusAnimationLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 850, javax.swing.GroupLayout.PREFERRED_SIZE)
        );
        statusPanelLayout.setVerticalGroup(
            statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, statusPanelLayout.createSequentialGroup()
                .addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(statusAnimationLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 15, Short.MAX_VALUE)
                    .addComponent(statusMessageLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 15, Short.MAX_VALUE)
                    .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        setComponent(mainPanel);
        setMenuBar(menuBar);
        setStatusBar(statusPanel);
        setToolBar(toolBar);
    }// </editor-fold>//GEN-END:initComponents

    private void selectItem(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_selectItem
        if (evt.getClickCount() < 2) {
            return;
        }

        switch (Gui.getCurrentPage()) {
            case BrowseItem:
            case ReadPerson:
            case ReadTransaction:
                Actions.item.gotoReadItem();
        }
    }//GEN-LAST:event_selectItem

    private void selectPerson(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_selectPerson
        if (evt.getClickCount() < 2) {
            return;
        }

        switch (Gui.getCurrentPage()) {
            case BrowsePerson:
                Actions.person.gotoReadPerson();
        }
    }//GEN-LAST:event_selectPerson

    private void selectTransaction(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_selectTransaction
        if (evt.getClickCount() < 2) {
            return;
        }

        switch (Gui.getCurrentPage()) {
            case BrowseTransaction:
            case ReadItem:
            case ReadPerson:
                Actions.transaction.gotoReadTransaction();
        }
    }//GEN-LAST:event_selectTransaction

    private void homeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_homeActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_homeActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private static javax.swing.JPanel borrowItem;
    private static javax.swing.JTable borrowItemItemsValue;
    private static javax.swing.JCheckBox borrowItemPersonContactNoInclude;
    private static javax.swing.JTextField borrowItemPersonContactNoValue;
    private static javax.swing.JCheckBox borrowItemPersonNameInclude;
    private static javax.swing.JTextField borrowItemPersonNameValue;
    private static javax.swing.JCheckBox borrowItemPersonTeamInclude;
    private static javax.swing.JComboBox borrowItemPersonTeamValue;
    private static javax.swing.JTable borrowItemPersonValue;
    private static javax.swing.JTextArea borrowItemPurposeValue;
    private static javax.swing.JPanel browseItem;
    private static javax.swing.JPanel browsePerson;
    private static javax.swing.JPanel browseTransaction;
    private static javax.swing.JPanel homePage;
    private static javax.swing.JCheckBox itemAvailabilityInclude;
    private static javax.swing.JCheckBox itemAvailabilityValue;
    private static javax.swing.JTable itemBrowseTable;
    private static javax.swing.JCheckBox itemDescInclude;
    private static javax.swing.JTextField itemDescValue;
    private static javax.swing.JCheckBox itemNameInclude;
    private static javax.swing.JTextField itemNameValue;
    private static javax.swing.JCheckBox itemNoInclude;
    private static javax.swing.JSpinner itemNoValue;
    private static javax.swing.JCheckBox itemTypeInclude;
    private static javax.swing.JComboBox itemTypeValue;
    private static javax.swing.JLabel jLabel1;
    private static javax.swing.JLabel jLabel2;
    private static javax.swing.JPanel mainPanel;
    private static javax.swing.JTable personBrowseTable;
    private static javax.swing.JCheckBox personContactNoInclude;
    private static javax.swing.JTextField personContactNoValue;
    private static javax.swing.JCheckBox personNameInclude;
    private static javax.swing.JTextField personNameValue;
    private static javax.swing.JCheckBox personTeamInclude;
    private static javax.swing.JComboBox personTeamValue;
    private static javax.swing.JProgressBar progressBar;
    private static javax.swing.JPanel readItem;
    private static javax.swing.JLabel readItemBorrower;
    private static javax.swing.JLabel readItemDescription;
    private static javax.swing.JButton readItemEditInformationButton;
    private static javax.swing.JLabel readItemId;
    private static javax.swing.JLabel readItemName;
    private static javax.swing.JLabel readItemNameDisplayLabel;
    private static javax.swing.JTable readItemTransactionsOnThisItemTable;
    private static javax.swing.JLabel readItemType;
    private static javax.swing.JPanel readPerson;
    private static javax.swing.JLabel readPersonContactNumber;
    private static javax.swing.JTable readPersonCurrentlyBorrowedItemsTable;
    private static javax.swing.JLabel readPersonId;
    private static javax.swing.JLabel readPersonName;
    private static javax.swing.JLabel readPersonNameDisplayLabel;
    private static javax.swing.JLabel readPersonTeam;
    private static javax.swing.JTable readPersonTransactionsByThisPersonTable;
    private static javax.swing.JPanel readTransaction;
    private static javax.swing.JLabel readTransactionDateDisplayLabel;
    private static javax.swing.JLabel readTransactionId;
    private static javax.swing.JLabel readTransactionPerson;
    private static javax.swing.JLabel readTransactionPurpose;
    private static javax.swing.JLabel readTransactionType;
    private static javax.swing.JTable readTransactionsItemsTable;
    private static javax.swing.JLayeredPane screensContainer;
    private static javax.swing.JLabel statusAnimationLabel;
    private static javax.swing.JLabel statusMessageLabel;
    private static javax.swing.JPanel statusPanel;
    private static javax.swing.JToolBar toolBar;
    private static javax.swing.JComboBox transactionDateDayValue;
    private static javax.swing.JCheckBox transactionDateInclude;
    private static javax.swing.JComboBox transactionDateMonthValue;
    private static javax.swing.JComboBox transactionDateYearValue;
    private static javax.swing.JCheckBox transactionItemAvailabilityInclude;
    private static javax.swing.JCheckBox transactionItemAvailabilityValue;
    private static javax.swing.JCheckBox transactionItemDescriptionInclude;
    private static javax.swing.JTextField transactionItemDescriptionValue;
    private static javax.swing.JCheckBox transactionItemNameInclude;
    private static javax.swing.JTextField transactionItemNameValue;
    private static javax.swing.JCheckBox transactionItemNumberInclude;
    private static javax.swing.JSpinner transactionItemNumberValue;
    private static javax.swing.JCheckBox transactionItemTypeInclude;
    private static javax.swing.JComboBox transactionItemTypeValue;
    private static javax.swing.JCheckBox transactionNumberInclude;
    private static javax.swing.JSpinner transactionNumberValue;
    private static javax.swing.JCheckBox transactionPersonContactNumberInclude;
    private static javax.swing.JTextField transactionPersonContactNumberValue;
    private static javax.swing.JCheckBox transactionPersonNameInclude;
    private static javax.swing.JTextField transactionPersonNameValue;
    private static javax.swing.JCheckBox transactionPersonTeamInclude;
    private static javax.swing.JComboBox transactionPersonTeamValue;
    private static javax.swing.JCheckBox transactionPurposeInclude;
    private static javax.swing.JTextField transactionPurposeValue;
    private static javax.swing.JTable transactionTable;
    private static javax.swing.JCheckBox transactionTypeInclude;
    private static javax.swing.JComboBox transactionTypeValue;
    // End of variables declaration//GEN-END:variables
    private static Timer messageTimer;
    private static Timer busyIconTimer;
    private static Icon idleIcon;
    private static Icon[] busyIcons = new Icon[15];
    private static int busyIconIndex = 0;
    private static Gui prime_instance; //prime instance of the Gui class
    //--MAPS--//
    //pages
    private static HashMap<Page, Component> screensMap;
    private static HashMap<Dialog, GuiDialog> dialogsMap;
    //--STATE HOLDERS--//
    //data for browse item
    private static ArrayList<Item> browseItemList = new ArrayList<Item>();
    private static ItemSearchOptions browseItemOrder = new ItemSearchOptions();
    //data for browse person
    private static ArrayList<Person> browsePersonList = new ArrayList<Person>();
    private static PersonSearchOptions browsePersonOrder = new PersonSearchOptions();
    //data for browse transaction
    private static ArrayList<Transaction> browseTransactionList;
    private static TransactionSearchOptions browseTransactionOrder = new TransactionSearchOptions();
    //data for read item
    private static Item selectedItem;
    private static ArrayList<Transaction> selectedItemTransactions;
    private static TransactionSearchOptions selectedItemTransactionsOrder = new TransactionSearchOptions();
    //data for read person
    private static Person selectedPerson;
    private static ArrayList<Item> selectedPersonItems = new ArrayList<Item>();
    private static ItemSearchOptions selectedPersonItemsOrder = new ItemSearchOptions();
    private static ArrayList<Transaction> selectedPersonTransactions;
    private static TransactionSearchOptions selectedPersonTransactionsOrder = new TransactionSearchOptions();
    //data for read transaction
    private static Transaction selectedTransaction;
    private static ArrayList<Item> selectedTransactionItems = new ArrayList<Item>();
    private static ItemSearchOptions selectedTransactionItemsOrder = new ItemSearchOptions();
    //data for borrow items
    private static ArrayList<Person> borrowItemPersons = new ArrayList<Person>();
    private static PersonSearchOptions borrowItemPersonsOrder = new PersonSearchOptions();
    private static ArrayList<Item> borrowItemItems = new ArrayList<Item>();
    private static ItemSearchOptions borrowItemItemsOrder = new ItemSearchOptions();

    //--TABLE INDEX CONSTANTS--//
    //item
    public static final int ITEM_COL_ID = 0;
    public static final int ITEM_COL_NAME = 1;
    public static final int ITEM_COL_TYPE = 2;
    public static final int ITEM_COL_DESC = 3;
    public static final int ITEM_COL_PERS = 4;
    //person
    public static final int PERSON_COL_NAME = 0;
    public static final int PERSON_COL_TEAM = 1;
    public static final int PERSON_COL_NUMB = 2;
    //transaction
    public static final int TRANS_COL_ID = 0;
    public static final int TRANS_COL_PERS = 1;
    public static final int TRANS_COL_ITEM = 2;
    public static final int TRANS_COL_DATE = 3;
    public static final int TRANS_COL_TYPE = 4;

    public enum Page {
        //enum that defines the screens that can be displayed in the only JLayeredFrame in the application

        Home,
        BrowseItem,
        BrowsePerson,
        BrowseTransaction,
        ReadItem,
        ReadPerson,
        ReadTransaction,
        BorrowItem,
    }

    public enum Dialog {
        //enum that defines the dialogs that can be displayed in the application

        AboutDeveloper,
        AboutSystem,
        DatabaseConfiguration,
        CreateItem,
        CreateItemType,
        EditItem,
        EditItemType,
        CreatePerson,
        CreateTeam,
        EditPerson,
        EditTeam,
        ErrorConsole,
    }

    public enum ComboBoxType {
        //enum that defines the types of combo box
        //the type of combo box will determine its contents

        TeamsComboBox,
        ItemTypesComboBox,
        TransactionTypesComboBox,
    }
    private static Page _currentPage;

    //--PRIVATE CUSTOM METHODS--//
    private static void initializeScreensMap() {
        screensMap = new HashMap<Page, Component>();
        screensMap.put(Page.Home, homePage);
        homePage.setVisible(true);
        screensMap.put(Page.BrowseItem, browseItem);
        browseItem.setVisible(false);
        screensMap.put(Page.BrowsePerson, browsePerson);
        browsePerson.setVisible(false);
        screensMap.put(Page.BrowseTransaction, browseTransaction);
        browseTransaction.setVisible(false);
        screensMap.put(Page.ReadItem, readItem);
        readItem.setVisible(false);
        screensMap.put(Page.ReadPerson, readPerson);
        readPerson.setVisible(false);
        screensMap.put(Page.ReadTransaction, readTransaction);
        readTransaction.setVisible(false);
        screensMap.put(Page.BorrowItem, borrowItem);
        borrowItem.setVisible(false);
        _currentPage = Page.Home;
    }

    private static void initializeDialogsMap() {
        dialogsMap = new HashMap<Dialog, GuiDialog>();
        JFrame mainFrame = Driver.getApplication().getMainFrame();
        dialogsMap.put(Dialog.AboutSystem, new AboutSys(mainFrame));
        dialogsMap.get(Dialog.AboutSystem).setLocationRelativeTo(mainFrame);

        dialogsMap.put(Dialog.AboutDeveloper, new AboutDevs(mainFrame));
        dialogsMap.get(Dialog.AboutDeveloper).setLocationRelativeTo(mainFrame);

        dialogsMap.put(Dialog.CreateItem, new ModifyItem(mainFrame));
        dialogsMap.get(Dialog.CreateItem).setLocationRelativeTo(mainFrame);
        dialogsMap.get(Dialog.CreateItem).setOkAction(
                new AbstractAction() {

                    public void actionPerformed(ActionEvent e) {
                        Actions.item.doCreateItem();
                    }
                });
        dialogsMap.get(Dialog.CreateItem).setTitle("Add Item");

        dialogsMap.put(Dialog.CreateItemType, new CreateItemType(mainFrame));
        dialogsMap.get(Dialog.CreateItemType).setLocationRelativeTo(mainFrame);

        dialogsMap.put(Dialog.CreatePerson, new ModifyPerson(mainFrame));
        dialogsMap.get(Dialog.CreatePerson).setLocationRelativeTo(mainFrame);
        dialogsMap.get(Dialog.CreatePerson).setOkAction(
                new AbstractAction() {

                    public void actionPerformed(ActionEvent e) {
                        Actions.person.doCreatePerson();
                    }
                });
        dialogsMap.get(Dialog.CreatePerson).setTitle("Add Person");

        dialogsMap.put(Dialog.CreateTeam, new CreateTeam(mainFrame));
        dialogsMap.get(Dialog.CreateTeam).setLocationRelativeTo(mainFrame);

        dialogsMap.put(Dialog.DatabaseConfiguration, new DatabaseConfig(mainFrame));
        dialogsMap.get(Dialog.DatabaseConfiguration).setLocationRelativeTo(mainFrame);

        dialogsMap.put(Dialog.EditItem, new ModifyItem(mainFrame));
        dialogsMap.get(Dialog.EditItem).setLocationRelativeTo(mainFrame);
        dialogsMap.get(Dialog.EditItem).setOkAction(
                new AbstractAction() {

                    public void actionPerformed(ActionEvent e) {
                        Actions.item.doUpdateItem();
                    }
                });
        dialogsMap.get(Dialog.EditItem).setTitle("Edit Item");

        dialogsMap.put(Dialog.EditItemType, new EditItemType(mainFrame));
        dialogsMap.get(Dialog.EditItemType).setLocationRelativeTo(mainFrame);

        dialogsMap.put(Dialog.EditPerson, new ModifyPerson(mainFrame));
        dialogsMap.get(Dialog.EditPerson).setLocationRelativeTo(mainFrame);
        dialogsMap.get(Dialog.EditPerson).setOkAction(
                new AbstractAction() {

                    public void actionPerformed(ActionEvent e) {
                        Actions.person.doUpdatePerson();
                    }
                });
        dialogsMap.get(Dialog.EditPerson).setTitle("Edit Person");

        dialogsMap.put(Dialog.EditTeam, new EditTeam(mainFrame));
        dialogsMap.get(Dialog.EditTeam).setLocationRelativeTo(mainFrame);

        dialogsMap.put(Dialog.ErrorConsole, new ErrorOutput(mainFrame));
        dialogsMap.get(Dialog.ErrorConsole).setLocationRelativeTo(mainFrame);
    }

    //--PUBLIC CUSTOM METHODS--//
    public static void setStatusBarMessage(String message) {
        statusMessageLabel.setText(message);
    }

    public static void setBusyEffect(boolean busy) {
        if (busy) {
            if (!busyIconTimer.isRunning()) {
                statusAnimationLabel.setIcon(busyIcons[0]);
                busyIconIndex = 0;
                busyIconTimer.start();
            }
            progressBar.setVisible(true);
            progressBar.setIndeterminate(true);
        } else {
            busyIconTimer.stop();
            statusAnimationLabel.setIcon(idleIcon);
            progressBar.setVisible(false);
            progressBar.setValue(0);
        }
    }

    public static String getStatusBarMessage() {
        return statusMessageLabel.getText();
    }

    public static Page getCurrentPage() {
        return _currentPage;
    }

    @Action
    public static void goToPage(Page screen) {
        Component dest = screensMap.get(screen);
        if (dest == null) {
            return;
        }
        if (screen == _currentPage) {
            return;
        }

        if (screensMap.get(_currentPage) != null) {
            screensMap.get(_currentPage).setVisible(false);
        }

        screensContainer.moveToFront(dest);
        _currentPage = screen;

        screensMap.get(_currentPage).setVisible(true);
    }

    @Action
    public static void showDialog(Dialog dialog) {
        dialogsMap.get(dialog).resetFields();
        Driver.getApplication().show(dialogsMap.get(dialog));
    }

    public static GuiDialog getDialog(Dialog dialog) {
        return dialogsMap.get(dialog);
    }

    private static String[] getTableColumns(JTable table) {
        String[] columnNames = new String[table.getColumnCount()];
        for (int i = 0; i < table.getColumnCount(); i++) {
            columnNames[i] = table.getColumnName(i);
        }
        return columnNames;
    }

    private static void setItemTable(JTable table, ArrayList<Item> items) {
        //set gui
        String[] columns = getTableColumns(table);
        String[][] rows = new String[items.size()][columns.length];

        for (int row = 0; row < items.size(); row++) {
            rows[row][ITEM_COL_ID] = "" + items.get(row).getId();
            rows[row][ITEM_COL_NAME] = "" + items.get(row).getName();
            rows[row][ITEM_COL_TYPE] = "" + items.get(row).getType();
            rows[row][ITEM_COL_DESC] = "" + items.get(row).getDescription();
            if (items.get(row).getPerson() == null) {
                rows[row][ITEM_COL_PERS] = "Available";
            } else {
                rows[row][ITEM_COL_PERS] = "" + items.get(row).getPerson().getName();
            }
        }

        DefaultTableModel model = new DefaultTableModel(rows, columns) {

            @Override
            public boolean isCellEditable(int row, int column) {
                return false;
            }
        };

        table.setModel(model);
    }

    private static void setPersonTable(JTable table, ArrayList<Person> persons) {
        //set gui
        String[] columns = getTableColumns(table);
        String[][] rows = new String[persons.size()][columns.length];

        for (int row = 0; row < persons.size(); row++) {
            rows[row][PERSON_COL_NAME] = "" + persons.get(row).getName();
            rows[row][PERSON_COL_TEAM] = "" + persons.get(row).getTeam();
            rows[row][PERSON_COL_NUMB] = "" + persons.get(row).getContactNo();
        }

        DefaultTableModel model = new DefaultTableModel(rows, columns) {

            @Override
            public boolean isCellEditable(int row, int column) {
                return false;
            }
        };

        table.setModel(model);
    }

    private static void setTransactionTable(JTable table, ArrayList<Transaction> transactions) {
        //set gui
        String[] columns = getTableColumns(table);
        String[][] rows = new String[transactions.size()][columns.length];

        for (int row = 0; row < transactions.size(); row++) {
            rows[row][TRANS_COL_ID] = "" + transactions.get(row).getId();
            rows[row][TRANS_COL_PERS] = "" + transactions.get(row).getPerson().getName();
            rows[row][TRANS_COL_ITEM] = "" + transactions.get(row).getItems().size();
            rows[row][TRANS_COL_DATE] = "" + transactions.get(row).getDate().toString();
            rows[row][TRANS_COL_TYPE] = "" + transactions.get(row).getType();
        }

        DefaultTableModel model = new DefaultTableModel(rows, columns) {

            @Override
            public boolean isCellEditable(int row, int column) {
                return false;
            }
        };

        table.setModel(model);
    }

    public static void setBrowseItemPage(ArrayList<Item> items) {
        //set state holders
        browseItemList = items;
        //set gui
        setItemTable(itemBrowseTable, items);
    }

    public static void setBrowsePersonPage(ArrayList<Person> persons) {
        //set state holders
        browsePersonList = persons;
        //set gui
        setPersonTable(personBrowseTable, persons);
    }

    public static void setBrowseTransactionPage(ArrayList<Transaction> translist) {
        //set state holders
        browseTransactionList = translist;
        //set gui
        setTransactionTable(transactionTable, translist);
    }

    public static void setReadItemPage(Item item, ArrayList<Transaction> transactions) {
        //set state holder
        selectedItem = item;
        selectedItemTransactions = transactions;

        //set gui
        String id = "" + item.getId();
        String name = "" + item.getName();
        String type = "" + item.getType();
        String desc = "" + item.getDescription();
        String borrow = "";
        if (item.getPerson() != null) {
            borrow = "" + item.getPerson().getName();
        } else {
            borrow = "Available";
        }

        readItemId.setText(id);
        readItemName.setText(name);
        readItemType.setText(type);
        readItemDescription.setText(desc);
        readItemBorrower.setText(borrow);

        setTransactionTable(readItemTransactionsOnThisItemTable, transactions);
    }

    public static void setReadPersonPage(Person person, ArrayList<Item> items, ArrayList<Transaction> transactions) {
        //set state holder
        selectedPerson = person;
        selectedPersonItems = items;
        selectedPersonTransactions = transactions;

        //set gui
        String id = "" + person.getId();
        String name = "" + person.getName();
        String contact = "" + person.getContactNo();
        String team = "" + person.getTeam();

        readPersonId.setText(id);
        readPersonName.setText(name);
        readPersonContactNumber.setText(contact);
        readPersonTeam.setText(team);

        setItemTable(readPersonCurrentlyBorrowedItemsTable, items);
        setTransactionTable(readPersonTransactionsByThisPersonTable, transactions);

    }

    public static void setReadTransaction(Transaction transaction, ArrayList<Item> items) {
        //set state holder
        selectedTransaction = transaction;
        selectedTransactionItems = items;

        //set gui
        String date = "" + transaction.getDate().toString();
        String id = "" + transaction.getId();
        String type = "" + transaction.getType();
        String purpose = "" + transaction.getPurpose();
        String person = "" + transaction.getPerson().getName();

        readTransactionDateDisplayLabel.setText(date);
        readTransactionId.setText(id);
        readTransactionType.setText(type);
        readTransactionPurpose.setText(purpose);
        readTransactionPerson.setText(person);

        setItemTable(readTransactionsItemsTable, items);

    }

    public static void setBorrowItems(ArrayList<Person> persons, ArrayList<Item> items) {
        //set state holder
        borrowItemPersons = persons;
        borrowItemItems = items;

        //set gui
        setPersonTable(borrowItemPersonValue, persons);
        setItemTable(borrowItemItemsValue, items);

    }

    public static void refreshComboBoxes(ArrayList<String> typelist, ArrayList<String> teamlist) {
        //--INITIALIZE COMBO BOX MODELS--//
        ArrayList<String> transactionTypes = new ArrayList<String>();
        transactionTypes.add(Transaction.BORROW);
        transactionTypes.add(Transaction.RETURN);
        DefaultComboBoxModel items = new DefaultComboBoxModel(typelist.toArray());
        DefaultComboBoxModel teams = new DefaultComboBoxModel(teamlist.toArray());
        DefaultComboBoxModel trans = new DefaultComboBoxModel(transactionTypes.toArray());

        //--SET MODELS TO COMBO BOXES IN THE MAIN GUI--//
        itemTypeValue.setModel(items);
        personTeamValue.setModel(teams);
        transactionTypeValue.setModel(trans);
        borrowItemPersonTeamValue.setModel(teams);
        transactionItemTypeValue.setModel(items);
        transactionPersonTeamValue.setModel(teams);

        //--REFRESH DIALOG BOX COMBO BOXES--//
        HashMap models = new HashMap<ComboBoxType, DefaultComboBoxModel>();
        models.put(ComboBoxType.ItemTypesComboBox, items);
        models.put(ComboBoxType.TeamsComboBox, teams);
        models.put(ComboBoxType.TransactionTypesComboBox, trans);
        dialogsMap.get(Dialog.CreateItem).refreshComboBoxes(models);
        dialogsMap.get(Dialog.CreatePerson).refreshComboBoxes(models);
        dialogsMap.get(Dialog.EditItem).refreshComboBoxes(models);
        dialogsMap.get(Dialog.EditItemType).refreshComboBoxes(models);
        dialogsMap.get(Dialog.EditPerson).refreshComboBoxes(models);
        dialogsMap.get(Dialog.EditTeam).refreshComboBoxes(models);
    }

    public static Item getItemSearchValues(Page page) {
        Item values = null;
        switch (page) {
            case BrowseItem:
                values = new Item();
                values.setId(Integer.valueOf("" + itemNoValue.getValue()));
                values.setName(itemNameValue.getText());
                values.setType((String) itemTypeValue.getSelectedItem());
                values.setDescription(itemDescValue.getText());
                if (itemAvailabilityValue.isSelected()) {
                    values.setPerson(null);
                } else {
                    values.setPerson(new Person());
                }
                break;
            case BrowseTransaction:
                values = new Item();
                values.setId(Integer.valueOf("" + transactionItemNumberValue.getValue()));
                values.setName(transactionItemNameValue.getText());
                values.setType((String) transactionItemTypeValue.getSelectedItem());
                values.setDescription(transactionItemDescriptionValue.getText());
                if (transactionItemAvailabilityValue.isSelected()) {
                    values.setPerson(null);
                } else {
                    values.setPerson(new Person());
                }
                break;
        }
        return values;
    }

    public static ItemSearchOptions getItemSearchOptions(Page page) {
        ItemSearchOptions values = null;
        switch (page) {
            case BrowseItem:
                values = new ItemSearchOptions();
                values.setConsiderId(itemNoInclude.isSelected());
                values.setConsiderName(itemNameInclude.isSelected());
                values.setConsiderType(itemTypeInclude.isSelected());
                values.setConsiderDescription(itemDescInclude.isSelected());
                values.setConsiderAvailable(itemAvailabilityInclude.isSelected());
                break;
            case BrowseTransaction:
                values = new ItemSearchOptions();
                values.setConsiderId(transactionItemNumberInclude.isSelected());
                values.setConsiderName(transactionItemNameInclude.isSelected());
                values.setConsiderType(transactionItemTypeInclude.isSelected());
                values.setConsiderDescription(transactionItemDescriptionInclude.isSelected());
                values.setConsiderAvailable(transactionItemAvailabilityInclude.isSelected());
                break;
        }
        return values;
    }

    public static ArrayList<Item> getItemsSelectedAtPage(Page page) {
        ArrayList<Item> selected = null;
        ArrayList<Item> list = null;
        JTable table = null;

        switch (page) {
            case BrowseItem:
                table = itemBrowseTable;
                list = browseItemList;
                break;
            case ReadPerson:
                table = readPersonCurrentlyBorrowedItemsTable;
                list = selectedPersonItems;
                break;
            case BorrowItem:
                table = borrowItemItemsValue;
                list = borrowItemItems;
                break;
            case ReadTransaction:
                table = readTransactionsItemsTable;
                list = selectedTransactionItems;
                break;
        }

        if (table != null) {
            selected = new ArrayList<Item>();
            int[] indexes = table.getSelectedRows();
            for (int i : indexes) {
                selected.add(list.get(i));
            }
        }

        return selected;
    }

    public static Person getPersonSearchValues(Page page) {
        Person values = null;
        switch (page) {
            case BrowsePerson:
                values = new Person();
                values.setName(personNameValue.getText());
                values.setTeam((String) personTeamValue.getSelectedItem());
                values.setContactNo(personContactNoValue.getText());
                break;
            case BrowseTransaction:
                values = new Person();
                values.setName(transactionPersonNameValue.getText());
                values.setTeam((String) transactionPersonTeamValue.getSelectedItem());
                values.setContactNo(transactionPersonContactNumberValue.getText());
                break;
            case BorrowItem:
                values = new Person();
                values.setName(borrowItemPersonNameValue.getText());
                values.setTeam((String) borrowItemPersonTeamValue.getSelectedItem());
                values.setContactNo(borrowItemPersonContactNoValue.getText());
                break;
        }
        return values;
    }

    public static PersonSearchOptions getPersonSearchOptions(Page page) {
        PersonSearchOptions values = null;
        switch (page) {
            case BrowsePerson:
                values = new PersonSearchOptions();
                values.setConsiderName(personNameInclude.isSelected());
                values.setConsiderTeam(personTeamInclude.isSelected());
                values.setConsiderContactNo(personContactNoInclude.isSelected());
                break;
            case BrowseTransaction:
                values = new PersonSearchOptions();
                values.setConsiderName(transactionPersonNameInclude.isSelected());
                values.setConsiderTeam(transactionPersonTeamInclude.isSelected());
                values.setConsiderContactNo(transactionPersonContactNumberInclude.isSelected());
                break;
            case BorrowItem:
                values = new PersonSearchOptions();
                values.setConsiderName(borrowItemPersonNameInclude.isSelected());
                values.setConsiderTeam(borrowItemPersonTeamInclude.isSelected());
                values.setConsiderContactNo(borrowItemPersonContactNoInclude.isSelected());
                break;
        }
        return values;
    }

    public static ArrayList<Person> getPersonsSelectedAtPage(Page page) {
        ArrayList<Person> selected = null;
        ArrayList<Person> list = null;
        JTable table = null;

        switch (page) {
            case BrowsePerson:
                table = personBrowseTable;
                list = browsePersonList;
                break;
            case BorrowItem:
                table = borrowItemPersonValue;
                list = borrowItemPersons;
                break;
        }

        if (table != null) {
            selected = new ArrayList<Person>();
            int[] indexes = table.getSelectedRows();
            for (int i : indexes) {
                selected.add(list.get(i));
            }
        }

        return selected;
    }

    public static Transaction getTransactionSearchValues(Page page) {
        Transaction values = null;
        switch (page) {
            case BrowseTransaction:
                values = new Transaction();
                values.setId(((Integer) (transactionNumberValue.getValue())).intValue());
                values.setDate(new Date(Integer.valueOf((String) transactionDateYearValue.getSelectedItem()) - 1900, Integer.valueOf((String) transactionDateMonthValue.getSelectedItem()) - 1, Integer.valueOf((String) transactionDateDayValue.getSelectedItem())));
                values.setType((String) transactionTypeValue.getSelectedItem());
                values.setPurpose(transactionPurposeValue.getText());

                Person person = Gui.getPersonSearchValues(page);
                values.setPerson(person);

                ArrayList<Item> items = new ArrayList<Item>();
                Item item = Gui.getItemSearchValues(page);
                items.add(item);
                values.setItems(items);

                break;
        }
        return values;
    }

    public static TransactionSearchOptions getTransactionSearchOptions(Page page) {
        TransactionSearchOptions values = null;
        switch (page) {
            case BrowseTransaction:
                values = new TransactionSearchOptions();
                values.setConsiderId(transactionNumberInclude.isSelected());
                values.setConsiderDate(transactionDateInclude.isSelected());
                values.setConsiderType(transactionTypeInclude.isSelected());
                values.setConsiderPurpose(transactionPurposeInclude.isSelected());
                values.setConsiderPerson(Gui.getPersonSearchOptions(page));
                values.setConsiderItem(Gui.getItemSearchOptions(page));
                break;
        }
        return values;
    }

    public static ArrayList<Transaction> getTransactionsSelectedAtPage(Page page) {
        ArrayList<Transaction> selected = null;
        ArrayList<Transaction> list = null;
        JTable table = null;

        switch (page) {
            case BrowseTransaction:
                table = transactionTable;
                list = browseTransactionList;
                break;
            case ReadItem:
                table = readItemTransactionsOnThisItemTable;
                list = selectedItemTransactions;
                break;
            case ReadPerson:
                table = readPersonTransactionsByThisPersonTable;
                list = selectedPersonTransactions;
                break;
        }

        if (table != null) {
            selected = new ArrayList<Transaction>();
            int[] indexes = table.getSelectedRows();
            for (int i : indexes) {
                selected.add(list.get(i));
            }
        }

        return selected;
    }

    public static ArrayList<Item> getDisplayedItemsAtPage(Page page) {
        switch (page) {
            case BrowseItem:
                return browseItemList;
            case ReadPerson:
                return selectedPersonItems;
            case ReadTransaction:
                return selectedTransactionItems;
            case BorrowItem:
                return borrowItemItems;
        }
        return null;
    }

    public static ArrayList<Person> getPersonsDisplayedAtPage(Page page) {
        switch (page) {
            case BrowsePerson:
                return browsePersonList;
            case BorrowItem:
                return borrowItemPersons;
        }
        return null;
    }

    public static ArrayList<Transaction> getTransactionsDisplayedAtPage(Page page) {
        switch (page) {
            case BrowseTransaction:
                return browseTransactionList;
            case ReadItem:
                return selectedItemTransactions;
            case ReadPerson:
                return selectedPersonTransactions;
        }
        return null;
    }

    public static Item getReadItemTarget() {
        return selectedItem;
    }

    public static Person getReadPersonTarget() {
        return selectedPerson;
    }

    public static Transaction getReadTransactionTarget() {
        return selectedTransaction;
    }

    public static String getBorrowItemPurpose() {
        return borrowItemPurposeValue.getText();
    }

    public static void resetBorrowItemPurpose() {
        borrowItemPurposeValue.setText("");
    }

    public static void setEnabled(boolean b) {
        prime_instance.getFrame().setEnabled(b);
    }

    public static ItemSearchOptions getItemOrderAtPage(Page p) {
        switch (p) {
            case BrowseItem:
                return browseItemOrder;
            case ReadPerson:
                return selectedPersonItemsOrder;
            case ReadTransaction:
                return selectedTransactionItemsOrder;
            case BorrowItem:
                return borrowItemItemsOrder;
        }
        return null;
    }

    public static PersonSearchOptions getPersonOrderAtPage(Page p) {
        switch (p) {
            case BrowsePerson:
                return browsePersonOrder;
            case BorrowItem:
                return borrowItemPersonsOrder;
        }
        return null;
    }

    public static TransactionSearchOptions getTransactionOrderAtPage(Page p) {
        switch (p) {
            case BrowseTransaction:
                return browseTransactionOrder;
            case ReadItem:
                return selectedItemTransactionsOrder;
            case ReadPerson:
                return selectedPersonTransactionsOrder;
        }
        return null;
    }

    public static void clearEntityOrders() {
        ItemSearchOptions i = null;
        i = browseItemOrder;
        i.reset();
        i = selectedPersonItemsOrder;
        i.reset();
        i = selectedTransactionItemsOrder;
        i.reset();
        i = borrowItemItemsOrder;
        i.reset();

        PersonSearchOptions p = null;
        p = browsePersonOrder;
        p.reset();
        p = borrowItemPersonsOrder;
        p.reset();

        TransactionSearchOptions t = null;
        t = browseTransactionOrder;
        t.reset();
        t = selectedItemTransactionsOrder;
        t.reset();
        t = selectedPersonTransactionsOrder;
        t.reset();
    }

    public static void setItemOrderAtPage(Page page, int basisColumn) {
        ItemSearchOptions order = null;
        switch (page) {
            case BrowseItem:
                order = browseItemOrder;
                break;
            case ReadPerson:
                order = selectedPersonItemsOrder;
                break;
            case ReadTransaction:
                order = selectedTransactionItemsOrder;
                break;
            case BorrowItem:
                order = borrowItemItemsOrder;
                break;
        }
        if(order == null)
            return;
        order.reset();
        switch(basisColumn) {
            case ITEM_COL_DESC:
                order.setConsiderDescription(true);
                break;
            case ITEM_COL_ID:
                order.setConsiderId(true);
                break;
            case ITEM_COL_NAME:
                order.setConsiderName(true);
                break;
            case ITEM_COL_PERS:
                order.setConsiderPerson(new PersonSearchOptions());
                break;
            case ITEM_COL_TYPE:
                order.setConsiderType(true);
                break;
        }
    }

    public static void setPersonOrderAtPage(Page page, int basisColumn) {
        PersonSearchOptions order = null;
        switch (page) {
            case BrowsePerson:
                order = browsePersonOrder;
                break;
            case BorrowItem:
                order = borrowItemPersonsOrder;
                break;
        }
        if(order == null)
            return;
        order.reset();
        switch(basisColumn) {
            case PERSON_COL_NAME:
                order.setConsiderName(true);
                break;
            case PERSON_COL_NUMB:
                order.setConsiderContactNo(true);
                break;
            case PERSON_COL_TEAM:
                order.setConsiderTeam(true);
                break;
        }
    }

    public static void setTransactionOrderAtPage(Page page, int basisColumn) {
        TransactionSearchOptions order = null;
        switch (page) {
            case BrowseTransaction:
                order = browseTransactionOrder;
                break;
            case ReadItem:
                order = selectedItemTransactionsOrder;
                break;
            case ReadPerson:
                order = selectedPersonTransactionsOrder;
                break;
        }
        if(order == null)
            return;
        order.reset();
        switch(basisColumn) {
            case TRANS_COL_DATE:
                order.setConsiderDate(true);
                break;
            case TRANS_COL_ID:
                order.setConsiderId(true);
                break;
            case TRANS_COL_PERS:
                order.setConsiderPerson(new PersonSearchOptions());
                break;
            case TRANS_COL_TYPE:
                order.setConsiderType(true);
            case TRANS_COL_ITEM:
                order.setConsiderItem(new ItemSearchOptions());
                break;
        }
    }

}
